2010-10-26 156 views
5

我使用SQL Server 2008中我試圖執行以下操作:TRY CATCH

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

但我收到以下錯誤:

>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'. 

任何一個可以告訴我在SQL Server中如何執行try catch?

+1

我不明白在2008年SQL – Brad 2010-10-26 13:31:33

+1

錯誤我也能夠運行該代碼未編輯,SQL 2005 – Fosco 2010-10-26 13:34:02

+0

你還有什麼在查詢窗口中可以執行以及? – Oded 2010-10-26 13:36:48

回答

8

這是對SQL Server 2005和一個完全有效的聲明,所以我使用sp_dbcmptlevel (Transact-SQL)檢查您的兼容級別:

exec sp_dbcmptlevel 'YourDatabaseName' 

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

我認爲這將返回80或者更低,似乎它不知道BEGIN TRY,只有BEGIN。在SQL Server 2005中添加了BEGIN TRY

+1

對我來說,同樣的錯誤。但我的是目前的兼容級別是100 .. – 2014-06-18 13:42:07

+0

@Jeeva Jsb,如果您確定兼容模式,然後創建一個新問題併發布您的代碼 – 2014-06-18 14:51:17

2

工作正常,我也,未編輯的,SQL Server 2008的

2

如果仍然存在此錯誤,問題就變成了,您是否在其中放入了BEGIN CATCH ... END CATCH部分。如果不是,則會出現此錯誤。如果您的BEGIN TRY ... END TRY部分沒有T-SQL代碼,那麼它也會產生錯誤。

我不認爲這有助於人們告訴你,你正在使用SQL Server 2000.它更可能是一個T-SQL編碼問題,因爲你傾向於知道你正在運行的服務器。