2010-10-26 13 views
5

estoy usando SQL Server 2008. He tratado de ejecutar lo siguiente:intento de captura en SQL Server

BEGIN TRY 
    SELECT 1/0; 
END TRY 
BEGIN CATCH 
    PRINT 'ERROR' 
END CATCH; 

Pero estoy consiguiendo el error siguiente:

>Msg 170, Level 15, State 1, Line 1 
Line 1: Incorrect syntax near 'TRY'. 
Msg 156, Level 15, State 1, Line 3 
Incorrect syntax near the keyword 'END'. 

Puede alguien decirme cómo ejecutar try catch en SQL Server?

+1

no consigo un error en SQL 2008 – Brad

+1

También soy capaz de ejecutar este código sin editar, SQL 2005. – Fosco

+0

¿Tiene cualquier otra cosa en la ventana de consulta que se pueden ejecutar ¿también? – Oded

Respuesta

8

Esa es una afirmación completamente válido para SQL Server 2005 y hasta, por lo que haría el ingreso de su nivel de compatibilidad usando sp_dbcmptlevel (Transact-SQL):

exec sp_dbcmptlevel 'YourDatabaseName' 

80 = SQL Server 2000
90 = SQL Server 2005
100 = SQL Server 2008

Creo que va a volver 80 o inferior, parece que no sabe BEGIN TRY, solo BEGIN. Se agregó el BEGIN TRY en SQL Server 2005.

+1

Para mí, el mismo error. pero el mio es El nivel de compatibilidad actual es 100 .. –

+0

@Jeeva Jsb, si está seguro del modo de compatibilidad, cree una nueva pregunta y publique su código –

2

funciona bien para mí, así, sin editar, en SQL Server 2008.

2

Si aún tiene este error, la pregunta es: ¿ha puesto una sección BEGIN CATCH ... END CATCH in? Si no, obtiene este error. Si tiene una sección BEGIN TRY ... END TRY sin código T-SQL, entonces también producirá el error.

No creo que sea útil que la gente te diga que estás usando SQL Server 2000. Es más probable que sea un problema de codificación T-SQL ya que tiendes a saber qué servidor estás ejecutando.

Cuestiones relacionadas