Este erro ocorre quando uma instrução Transact-SQL contém aspas simples ou duplas não correspondentes. A configuração SET QUOTED_IDENTIFIER determinará as combinações válidas de aspas simples e duplas. Para obter mais informações sobre SET QUOTED_IDENTIFIER, consulte os tópicos nos manuais online sobre SET QUOTED_IDENTIFIER.
Cada sinal de aspas simples ou duplas usado para marcar o início de uma cadeia de caracteres literal deve ter um sinal de aspas correspondente, do mesmo tipo, para marcar o fim da cadeia. Um sinal de aspas simples não pode ser combinado com um sinal de aspas duplas para delimitar uma única cadeia de caracteres literal.
As aspas que fazem parte da cadeia de caracteres literal são tratadas de modo diferente. Se um sinal de aspas simples (') fizer parte da cadeia de caracteres literal, ele poderá ser representado por duas aspas simples (''). Se uma cadeia de caracteres literal for delimitada por aspas duplas e SET QUOTED_IDENTIFIER estiver definido como OFF, a cadeia de caracteres poderá conter sinais de aspas simples inseridos, como apóstrofos. Se uma cadeia de caracteres literal for delimitada por aspas simples e SET QUOTED_IDENTIFIER estiver definido como ON ou OFF, a cadeia de caracteres poderá conter aspas duplas inseridas.
Se você não colocar o tipo e o número corretos de aspas em cada local do código, o SQL Server retornará o erro acima, possivelmente com a mensagem de erro "Sintaxe incorreta próxima a %".
Para obter mais informações sobre como gerenciar aspas em códigos, consulte estes artigos da Base de Dados de Conhecimento Microsoft:
Para obter exemplos de uso de aspas, consulte os tópicos nos Manuais Online sobre SET QUOTED_IDENTIFIER.
SELECT SESSIONPROPERTY('QUOTED_IDENTIFIER')
Dependendo de suas necessidades, talvez você precise alterar a configuração com SET QUOTED_IDENTIFIER ON/OFF.
Verifique se QUOTED_IDENTIFIER é true na sessão atual com este comando Transact-SQL:SELECT SESSIONPROPERTY('QUOTED_IDENTIFIER')Dependendo das suas necessidades, talvez você precise alterar a configuração com SET QUOTED_IDENTIFIER ON/OFF.
Verifique se cada sinal de aspas que deve delimitar uma cadeia de caracteres tem um sinal de aspas correspondente, do mesmo tipo.
Verifique se cada sinal de aspas que faz parte da cadeia de caracteres literal está representado por dois sinais de aspas do mesmo tipo.
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>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>