Applies ToSQL Server 2012 Enterprise SQL Server 2012 Business Intelligence SQL Server 2012 Developer SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2012 Express

Correctifs du Service Pack 1 de Microsoft SQL Server 2012 sont distribuées sous la forme d’un fichier téléchargeable unique. Étant donné que les correctifs sont cumulatifs, chaque nouvelle version contient tous les correctifs et correctifs de sécurité inclus dans la précédente SQL Server 2012 Service Pack 1 version du correctif.

Symptômes

Lorsque vous exécutez une instruction Transact-SQL dans SQL Server 2012, le message d’erreur suivant s’affiche :

Syntaxe incorrecte près de 'begi'.

Ce problème se produit lorsque les conditions suivantes sont remplies :

  • L’instruction contient une condition IF .

  • La condition IF ne contient-elle pas d’instructions BEGIN et END .

  • La condition IF est suivie par un bloc TRY de commencer .

  • Le bloc IF est recompilé lorsque vous exécutez la requête.

Résolution

Informations de mise à jour cumulative

Mises à jour cumulatives 4 pour SQL Server 2012 SP1

Le correctif de ce problème a été publié dans les 4 mise à jour Cumulative. Pour plus d’informations sur l’obtention de ce package de mise à jour cumulative pour SQL Server 2012 SP1, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :

2833645 Cumulative mise à jour 4 pour SQL Server 2012 SP1Remarque Étant donné que les versions étant cumulatives, chaque nouvelle version de correctif contient tous les correctifs et correctifs de sécurité inclus dans le précédent Service Pack 1 de SQL Server 2012 version du correctif. Nous vous recommandons l’application la plus récente version du correctif qui comprendra ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :

2772858 2012 de SQL Server les builds qui ont été publiées après la publication du Service Pack 1 de SQL Server 2012

État

Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés dans la section « S'applique à ».

Plus d'informations

Pour reproduire ce problème, exécutez les instructions Transact-SQL suivantes dans 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);IF year(getdate())=2012 SELECT @i=(SELECT COUNT(*) AS nr FROM #temptable);BEGIN TRYSELECT 'message'END TRYBEGIN CATCHSELECT ERROR_MESSAGE()END CATCH

Solution de contournement

Pour contourner ce problème, ajoutez les instructions BEGIN et END pour la condition IF .

Références

Pour plus d’informations sur le modèle de service incrémentiel pour SQL Server, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :

935897 un modèle de service incrémentiel est disponible auprès de l’équipe SQL Server pour proposer des correctifs pour les problèmes signalésPour plus d’informations sur le schéma d’appellation des mises à jour de SQL Server, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :

Packages de mises à jour de schéma de nommage 822499 pour les logiciels de Microsoft SQL ServerPour plus d’informations sur la terminologie de mise à jour logicielle, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :

Description 824684 terminologie standard utilisée pour décrire les mises à jour logicielles de Microsoft

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.