Questo errore si verifica quando un'istruzione Transact-SQL contiene virgolette singole o doppie non corrispondenti. L'impostazione SET QUOTED_IDENTIFIER stabilisce le combinazioni valide di virgolette singole o doppie. Per altre informazioni su SET QUOTED_IDENTIFIER, vedere l'argomento "SET QUOTED_IDENTIFIER" nella documentazione online.
Le virgolette singole o doppie usate per contrassegnare l'inizio di una stringa letterale devono corrispondere alle virgolette usate per contrassegnare la fine di tale stringa. Non è possibile delimitare la stessa stringa letterale accoppiando le virgolette singole con le virgolette doppie.
Le virgolette contenute all'interno della stringa letterale vengono gestite in modo diverso. Se una stringa letterale contiene una virgoletta singola ('), tale virgoletta può essere rappresentata da due virgolette singole (''). Se una stringa letterale è delimitata da virgolette doppie e SET QUOTED_IDENTIFIER è impostata su OFF, la stringa potrà contenere al suo interno virgolette singole, ad esempio apostrofi. Se una stringa letterale è delimitata da virgolette singole, indipendentemente dal fatto che SET QUOTED_IDENTIFIER sia impostata su ON o su OFF, la stringa potrà contenere al suo interno virgolette doppie.
Se non si usano il tipo e il numero corretto di virgolette in ogni punto del codice, viene restituito questo errore, generalmente accompagnato dall'errore "Sintassi non corretta in prossimità di %".
Per altre informazioni sulla gestione delle virgolette all'interno del codice, vedere gli articoli della Microsoft Knowledge Base seguenti:
Per esempi di utilizzo delle virgolette, vedere l'argomento "SET QUOTED_IDENTIFIER" nella documentazione online.
SELECT SESSIONPROPERTY('QUOTED_IDENTIFIER')
A seconda delle esigenze, è possibile modificare l'impostazione con SET QUOTED_IDENTIFIER ON/OFF.
Controllare se QUOTED_IDENTIFIER è impostato su True per la sessione corrente tramite il seguente comando Transact-SQL: SELECT SESSIONPROPERTY('QUOTED_IDENTIFIER'). A seconda delle esigenze, potrebbe essere necessario modificare l'impostazione con SET QUOTED_IDENTIFIER ON/OFF.
Verificare che tutte le virgolette per la delimitazione di una stringa abbiano virgolette corrispondenti dello stesso tipo.
Verificare che ogni virgoletta contenuta in una stringa letterale sia rappresentata da due virgolette dello stesso tipo.
Nome | Descrizione | Valore predefinito |
Abilitato | Abilita o disabilita il flusso di lavoro. | Sì |
Priorità | Definisce la priorità dell'avviso. | 1 |
Gravità | Definisce la gravità dell'avviso. | 1 |
Target | Microsoft.SQLServer.2012.DBEngine | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 14353 | ||
Event Source | $Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$ | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application | ||
Comment | Mom2012ID='{9F3F26E8-EB1A-479F-A53F-BA44C789022D}';MOM2012GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74} |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ | DataSource | Microsoft.Windows.EventProvider | Microsoft.SQLServer.SQLDefaultAccount |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.2012.Cannot_determine_the_service_account_for_SQL_Server_instance_1_5_Rule" Target="SQL2012Core!Microsoft.SQLServer.2012.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2012ID='{9F3F26E8-EB1A-479F-A53F-BA44C789022D}';MOM2012GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Windows!Microsoft.Windows.EventProvider" RunAs="SQL!Microsoft.SQLServer.SQLDefaultAccount">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>$Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>14353</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2012.Cannot_determine_the_service_account_for_SQL_Server_instance_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>