MSSQL 2016: no se puede determinar la cuenta de servicio para la instancia de SQL Server

Microsoft.SQLServer.2016.Cannot_determine_the_service_account_for_SQL_Server_instance_1_5_Rule (Rule)

Este error se produce cuando una instrucción Transact-SQL contiene comillas simples o dobles sin correspondencia. La configuración de SET QUOTED_IDENTIFIER determinará las combinaciones válidas de comillas simples y dobles. Para obtener más información acerca de SET QUOTED_IDENTIFIER, vea el tema sobre SET QUOTED_IDENTIFIER en los Libros en pantalla.

Knowledge Base article:

Causas

Este error se produce cuando una instrucción Transact-SQL contiene comillas simples o dobles sin correspondencia. La configuración de SET QUOTED_IDENTIFIER determinará las combinaciones válidas de comillas simples y dobles. Para obtener más información acerca de SET QUOTED_IDENTIFIER, vea el tema sobre SET QUOTED_IDENTIFIER en los Libros en pantalla.

Por cada comilla simple o doble de apertura utilizada para indicar el comienzo de una cadena literal, debe existir una comilla de cierre del mismo tipo para indicar el final de la cadena literal. Las comillas simples no se pueden usar junto con las comillas dobles para delimitar una misma cadena literal.

Las comillas que forman parte de la cadena literal se administran de forma diferente. Si una comilla simple (') forma parte de la cadena literal, se puede representar mediante dos comillas simples (''). Si una cadena literal está delimitada por comillas dobles y SET QUOTED_IDENTIFIER tiene el valor OFF, la cadena puede contener comillas simples incrustadas, como apóstrofos. Si una cadena literal está delimitada por comillas simples y SET QUOTED_IDENTIFIER tiene el valor ON u OFF, la cadena puede contener comillas dobles incrustadas.

Si no coloca el tipo y el número correctos de comillas en todas las partes del código, SQL Server devolverá el error anterior, probablemente junto con un error de "Sintaxis incorrecta cerca de %".

Para obtener más información acerca de la administración de comillas en el código, vea estos artículos de Microsoft Knowledge Base:

311023 y 311021.

Para obtener ejemplos del uso de las comillas, vea el tema sobre SET QUOTED_IDENTIFIER en los Libros en pantalla.

Soluciones

SELECT SESSIONPROPERTY('QUOTED_IDENTIFIER')

Dependiendo de sus necesidades, puede que necesite cambiar la configuración mediante los valores ON/OFF de SET QUOTED_IDENTIFIER.

Parámetros invalidables

Nombre

Descripción

Valor predeterminado

Habilitado

Habilita o deshabilita el flujo de trabajo.

Prioridad

Define la prioridad de la alerta.

1

Gravedad

Define la gravedad de la alerta.

1

Element properties:

TargetMicrosoft.SQLServer.2016.DBEngine
CategoryEventCollection
EnabledTrue
Event_ID14353
Event Source$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL 2016: no se puede determinar la cuenta de servicio para la instancia de SQL Server
{0}
Event LogApplication
CommentMom2016ID='{9F3F26E8-EB1A-479F-A53F-BA44C789022D}';MOM2016GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

ID Module Type TypeId RunAs 
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ DataSource Microsoft.Windows.EventProvider Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SQLServer.2016.Cannot_determine_the_service_account_for_SQL_Server_instance_1_5_Rule" Target="SQL2016Core!Microsoft.SQLServer.2016.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2016ID='{9F3F26E8-EB1A-479F-A53F-BA44C789022D}';MOM2016GroupID={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">
<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="SQL2016Core!Microsoft.SQLServer.2016.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.2016.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>