在 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
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