比如插入数据时 约束不通过,我将错误信息赋值给一个 Error 变量,将此Error返回出去。

解决方案 »

  1.   

    在 Transact-SQL 语句完成后,马上把 @@ERROR 存储到一个整型变量中。此变量的值可供以后使用。 可以用临时表记录所有出错信息USE Northwind
    GODROP PROCEDURE SampleProcedure
    GO
    -- Create a procedure that takes one input parameter
    -- and returns one output parameter and a return code.
    CREATE PROCEDURE SampleProcedure @EmployeeIDParm INT,
                @MaxQuantity INT OUTPUT
    AS
    -- Declare and initialize a variable to hold @@ERROR.
    DECLARE @ErrorSave INT
    SET @ErrorSave = 0-- Do a SELECT using the input parameter.
    SELECT FirstName, LastName, Title
    FROM Employees
    WHERE EmployeeID = @EmployeeIDParm-- Save any non-zero @@ERROR value.
    IF (@@ERROR <> 0)
        SET @ErrorSave = @@ERROR
        INSERT INTO #T SELECT @ERRORSAVE-- Set a value in the output parameter.
    SELECT @MaxQuantity = MAX(Quantity)
    FROM [Order Details]-- Save any non-zero @@ERROR value.
    IF (@@ERROR <> 0)
        SET @ErrorSave = @@ERROR
        INSERT INTO #T SELECT @ERRORSAVE-- Returns 0 if neither SELECT statement had
    -- an error, otherwise returns the last error.
    RETURN @ErrorSave
    GO