存储:
CREATE PROC PROC_TEST
(
@type INT=0, -- 0 查询(SELECT) 1 更新(INSERT UPDATE DELETE)
@param1 VARCHAR(50)='',
@code INT OUTPUT, -- 出参1
@message VARCHAR(50) OUTPUT -- 出参2
)
AS
BEGIN
SET NOCOUNT ON
SET @code= -1
SET @message=''
IF (@type= 0)
BEGIN
SELECT 1,2,3
IF (@@ROWCOUNT=0) --判断查询为空
BEGIN
SET @code= 1
SET @message='无相关记录!'
RETURN
END
IF (@@ERROR<>0)
BEGIN
SET @code= 2
SET @message='查询出错!'
RETURN
END
END
ELSE
BEGIN
BEGIN TRAN --开始事务
/*
SQL 更新(INSERT UPDATE DELETE)
*/
IF (@@ERROR<>0)
BEGIN
SET @code= 3
SET @message='执行错误!'
ROLLBACK TRAN --回滚事务
RETURN
END
COMMIT TRAN --提交事务
END
SET @code= 0
SET @message='操作成功!'
END
测试:
DECLARE
@param1 VARCHAR(50)='',
@code INT,
@message VARCHAR(50)
EXEC PROC_TEST 0,'',@code OUTPUT, @message OUTPUT
SELECT @code code,@message msg
EXEC PROC_TEST 1,'',@code OUTPUT, @message OUTPUT
SELECT @code code,@message msg