Se aplica a
SQL Server 2012 Enterprise SQL Server 2012 Business Intelligence SQL Server 2012 Developer SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2012 Express

Las correcciones de Microsoft SQL Server 2012 Service Pack 1 se distribuyen como un único archivo descargable. Dado que las correcciones son acumulativas, cada nueva versión contiene todas las revisiones y todas las correcciones de seguridad que se incluyeron con la versión de corrección del Service Pack 1 de SQL Server 2012.

Síntomas

Al ejecutar una instrucción Transact-SQLTransact-SQL en SQL Server 2012, recibe el siguiente mensaje de error:

Sintaxis incorrecta cerca de "begi".

Este problema se produce cuando se cumplen las condiciones siguientes:

  • La instrucción contiene una condición SI.

  • La condición SI no contiene instrucciones BEGIN y END.

  • La condición SI va seguida de un bloque BEGIN TRY.

  • El bloque SI se vuelve a compilar al ejecutar la consulta.

Solución

Información sobre la actualización acumulativa

Actualización acumulativa 4 para SQL Server 2012 SP1

La corrección para este problema se publicó por primera vez en la actualización acumulativa 4. Para obtener más información sobre cómo obtener este paquete de actualización acumulativa para SQL Server 2012 SP1, haga clic en el número de artículo siguiente para ir al artículo en Microsoft Knowledge Base:

2833645 Actualización acumulativa 4 para SQL Server 2012 SP1Note Dado que las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las correcciones de seguridad que se incluyeron con la versión anterior de corrección de SQL Server 2012 SP1. Le recomendamos que considere la posibilidad de aplicar la corrección más reciente que contiene esta revisión. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

2772858 Las compilaciones de SQL Server 2012 que se publicaron después del lanzamiento del Service Pack 1 de SQL Server 2012

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "Se aplica a".

Más información

Para reproducir este problema, ejecute las siguientes instrucciones Transact-SQLtransact-SQL en SQL Server 2012: DECLARE @i INTIF object_id('tempdb.. #temptable') IS NOT NULLDROP TABLE #temptableCREATE TABLE #temptable (id INT)INSERT INTO #temptable VALUES (1),(2),(3);SI año(getdate())=2012 SELECT @i=(SELECT COUNT(*) as nr FROM #temptable);BEGIN TRYSELECT 'message'END TRYBEGIN CATCHSELECT ERROR_MESSAGE()END CATCH

Solución alternativa 

Para solucionar este problema, agregue instrucciones BEGIN y END a la condición SI.

Referencias

Para obtener más información sobre el modelo de mantenimiento incremental para SQL Server, haga clic en el número de artículo siguiente para ir al artículo en Microsoft Knowledge Base:

935897 El equipo de SQL Server dispone de un modelo de mantenimiento incremental para entregar revisiones para los problemas notificados. Para obtener más información sobre el esquema de nomenclatura para las actualizaciones de SQL Server, haga clic en el número de artículo siguiente para ir al artículo de Microsoft Knowledge Base:

822499 Asignar nombre a los paquetes de actualización de software de Microsoft SQL Server Para obtener más información sobre la terminología de actualización de software, haga clic en el siguiente número de artículo para ir al artículo de Microsoft Knowledge Base:

824684 Descripción de la terminología estándar utilizada para describir las actualizaciones de software de Microsoft

¿Necesita más ayuda?

¿Quiere más opciones?

Explore las ventajas de las suscripciones, examine los cursos de aprendizaje, aprenda a proteger su dispositivo y mucho más.