小编jab*_*own的帖子

SQL SERVER 2008R2使用RAISERROR的嵌套事务

我们正在经历从DB2切换到SQL Server 2008R2的过程,我对TSQL有点不熟悉.任何有助于更好地了解正在发生的事情的帮助都会很好.我们创建了一个名为RethrowError的过程:

CREATE PROCEDURE RethrowError 
AS
BEGIN
    -- Return if there is no error information to retrieve.
    IF ERROR_NUMBER() IS NULL
        RETURN;
 PRINT 'yo error'; 

    DECLARE 
        @ErrorMessage    NVARCHAR(4000),
        @ErrorNumber     INT,
        @ErrorSeverity   INT,
        @ErrorState      INT,
        @ErrorLine       INT,
        @ErrorProcedure  NVARCHAR(200);

    -- Assign variables to error-handling functions that 
    -- capture information for RAISERROR.
    SELECT 
        @ErrorNumber     = ERROR_NUMBER(),
        @ErrorSeverity   = ERROR_SEVERITY(),
        @ErrorState      = ERROR_STATE(),
        @ErrorLine       = ERROR_LINE(),
        @ErrorProcedure  = ISNULL(ERROR_PROCEDURE(), '-');

    -- Build the message string that will contain original
    -- error information. …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2008 sql-server-2008-r2

5
推荐指数
1
解决办法
4927
查看次数