TRY CATCH
我使用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?
这是对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
。
对我来说,同样的错误。但我的是目前的兼容级别是100 .. – 2014-06-18 13:42:07
@Jeeva Jsb,如果您确定兼容模式,然后创建一个新问题并发布您的代码 – 2014-06-18 14:51:17
工作正常,我也,未编辑的,SQL Server 2008的
如果仍然存在此错误,问题就变成了,您是否在其中放入了BEGIN CATCH ... END CATCH部分。如果不是,则会出现此错误。如果您的BEGIN TRY ... END TRY部分没有T-SQL代码,那么它也会产生错误。
我不认为这有助于人们告诉你,你正在使用SQL Server 2000.它更可能是一个T-SQL编码问题,因为你倾向于知道你正在运行的服务器。
Begin try
Begin transaction
--------
--------
Commit transaction
End try
Begin catch
Rollback transaction
End catch
http://intquesans.blogspot.com/2011/05/how-we-can-use-try-catch-in-sql.html
在我的情况下,我已经把'Begin Transaction'放在'Begin Try' ',但'Try Transaction'在'Try'块中。这个答案告诉我我做错了什么。 – 2014-08-04 14:08:52
我不明白在2008年SQL – Brad 2010-10-26 13:31:33
错误我也能够运行该代码未编辑,SQL 2005 – Fosco 2010-10-26 13:34:02
你还有什么在查询窗口中可以执行以及? – Oded 2010-10-26 13:36:48