Si applica 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

Le correzioni di Microsoft SQL Server 2012 Service Pack 1 vengono distribuite come un unico file scaricabile. Dato che le correzioni sono cumulative, ogni nuova versione contiene tutti gli aggiornamenti rapidi e tutte le correzioni per la sicurezza inclusi nella versione precedente della correzione di SQL Server 2012 Service Pack 1.

Sintomi

Quando si esegue un'istruzione Transact-SQL in SQL Server 2012, viene visualizzato il messaggio di errore seguente:

Sintassi errata vicino a 'begi'.

Questo problema si verifica quando si verificano le condizioni seguenti:

  • L'istruzione contiene una condizione SE.

  • La condizione SE non contiene istruzioni BEGIN e END.

  • La condizione SE è seguita da un blocco BEGIN TRY.

  • Il blocco IF viene ricompilato quando si esegue la query.

Risoluzione

Informazioni sugli aggiornamenti cumulativi

Aggiornamento cumulativo 4 per SQL Server 2012 SP1

La correzione di questo problema è stata rilasciata per la prima volta nell'aggiornamento cumulativo 4. Per altre informazioni su come ottenere questo pacchetto di aggiornamento cumulativo per SQL Server 2012 SP1, fare clic sul numero dell'articolo seguente per passare all'articolo della Microsoft Knowledge Base:

2833645 Aggiornamento cumulativo 4 per SQL Server 2012 SP1Note Dato che le build sono cumulative, ogni nuova versione di correzione contiene tutti gli aggiornamenti rapidi e tutte le correzioni per la sicurezza inclusi nella versione di correzione precedente di SQL Server 2012 SP1. È consigliabile applicare la versione più recente di correzione che contiene questo hotfix. Per altre informazioni, fare clic sul numero dell'articolo seguente per passare all'articolo della Microsoft Knowledge Base:

2772858 Build SQL Server 2012 rilasciate dopo il rilascio di SQL Server 2012 Service Pack 1

Stato

Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".

Ulteriori informazioni

Per riprodurre questo problema, eseguire le istruzioni Transact-SQL seguenti in 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 TRY BEGINCATCHSELECT ERROR_MESSAGE()END CATCH

Soluzione alternativa

Per risolvere il problema, aggiungere istruzioni BEGIN e END alla condizione SE.

Riferimenti

Per altre informazioni sul modello di manutenzione incrementale per SQL Server, fare clic sul numero dell'articolo seguente per passare all'articolo della Microsoft Knowledge Base:

935897 Un modello di manutenzione incrementale è disponibile dal team SQL Server per fornire aggiornamenti rapidi per i problemi segnalati Per altre informazioni sullo schema di denominazione per gli aggiornamenti SQL Server, fare clic sul numero dell'articolo seguente per passare all'articolo della Microsoft Knowledge Base:

822499 Schema di denominazione per Microsoft SQL Server pacchetti di aggiornamenti software Per altre informazioni sulla terminologia di aggiornamento software, fare clic sul numero dell'articolo seguente per passare all'articolo della Microsoft Knowledge Base:

824684 Descrizione della terminologia standard utilizzata per descrivere gli aggiornamenti software Microsoft

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.