尝试捕获不在SQL Server 2005中工作

时间:2009-11-27 18:08:56

标签: sql-server try-catch

如果我尝试在sql server 2005中运行以下代码,我会收到错误

BEGIN TRY

        SELECT 1/0;
    END TRY
    BEGIN CATCH
        SELECT
            ERROR_NUMBER() AS ErrorNumber
            ,ERROR_SEVERITY() AS ErrorSeverity
            ,ERROR_STATE() AS ErrorState
            ,ERROR_PROCEDURE() AS ErrorProcedure
            ,ERROR_LINE() AS ErrorLine
            ,ERROR_MESSAGE() AS ErrorMessage;
    END CATCH;
    GO

错误:

Line 1: Incorrect syntax near 'TRY'.
Msg 156, Level 15, State 1, Line 4
Incorrect syntax near the keyword 'END'.
Msg 195, Level 15, State 10, Line 7
'ERROR_NUMBER' is not a recognized function name.

我使用的是sql server 2000服务管理器,但现在我已经安装了sql server 2005服务管理器,但仍然收到错误..一篇与之相关的文章说

出现此类错误的原因似乎是目标数据库正在MS SQL Server 2000服务器上运行。所以请确保您的数据库服务器是SQL2005

这是什么意思......?我必须做些什么改变?

2 个答案:

答案 0 :(得分:6)

您需要使用SQL Server 2005或更高版本才能使用TRY ... CATCH,如果您仍然连接到SQL 2000服务器,安装SQL Server Management Studio将无济于事。

答案 1 :(得分:0)

出现此类错误的原因似乎是目标数据库正在MS SQL Server 2000服务器上运行。所以请确保您的数据库服务器是SQL2005