Se aplică la
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

Remedierile Microsoft SQL Server 2012 Service Pack 1 sunt distribuite ca fișier ce poate fi descărcat. Având în vedere că remedierile sunt cumulative, fiecare versiune nouă conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în versiunea de remediere anterioară a SQL Server 2012 Service Pack 1.

Simptome

Atunci când rulați o instrucțiune Transact-SQL în SQL Server 2012, primiți următorul mesaj de eroare:

Sintaxă incorectă lângă "begi".

Această problemă apare atunci când sunt adevărate următoarele condiții:

  • Instrucțiunea conține o condiție IF.

  • Condiția IF nu conține instrucțiuni BEGIN și END.

  • Condiția IF este urmată de un bloc BEGIN TRY.

  • Blocul IF este recompilit atunci când rulați interogarea.

Rezolvare

Informații despre actualizarea cumulativă

Actualizarea cumulativă 4 pentru SQL Server 2012 SP1

Remedierea pentru această problemă a fost lansată pentru prima dată în actualizarea cumulativă 4. Pentru mai multe informații despre obținerea acestui pachet de actualizare cumulativă pentru SQL Server 2012 SP1, faceți clic pe următorul număr de articol pentru a accesa articolul din Baza de cunoștințe Microsoft:

2833645 Actualizarea cumulativă 4 pentru SQL Server 2012 SP1Note Având în vedere că versiunile sunt cumulative, fiecare ediție nouă de remediere conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în versiunea de remediere anterioară a SQL Server 2012 SP1. Vă recomandăm să luați în considerare aplicarea celei mai recente remedieri care conține această remediere rapidă. Pentru mai multe informații, faceți clic pe următorul număr de articol pentru a accesa articolul din Baza de cunoștințe Microsoft:

2772858 Compilările SQL Server 2012 care au fost lansate după lansarea SQL Server 2012 Service Pack 1

Stare

Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.

Mai multe informații

Pentru a reproduce această problemă, rulați următoarele instrucțiuni Transact-SQL în SQL Server 2012: DECLARE @i INTIF object_id('tempdb.) #temptable') NU ESTE 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 TRY BEGIN CATCHSELECT ERROR_MESSAGE()END CATCH

Soluție de evitare

Pentru a rezolva această problemă, adăugați instrucțiuni BEGIN și END la condiția IF.

Referințe

Pentru mai multe informații despre modelul de servicii incrementale pentru SQL Server, faceți clic pe următorul număr de articol pentru a accesa articolul din Baza de cunoștințe Microsoft:

935897 Un model de servicii incrementale este disponibil de la echipa de SQL Server pentru a livra remedieri rapide pentru problemele raportate Pentru mai multe informații despre schema de denumire a actualizărilor SQL Server, faceți clic pe următorul număr de articol pentru a accesa articolul din Baza de cunoștințe Microsoft:

822499 Denumirea schemei pentru pachetele de actualizări software Microsoft SQL Server Pentru mai multe informații despre terminologia actualizărilor de software, faceți clic pe următorul număr de articol pentru a accesa articolul din Baza de cunoștințe Microsoft:

824684 Descrierea terminologiei standard care este utilizată pentru a descrie actualizările de software Microsoft

Aveți nevoie de ajutor suplimentar?

Doriți mai multe opțiuni?

Explorați avantajele abonamentului, navigați prin cursurile de instruire, aflați cum să vă securizați dispozitivul și multe altele.