第一种:
BEGIN TRAN
--SQL 语句 ;update,delete,insertUPDATE ZD_KSFL_TEST SET CYZXKS='ABC' WHERE KSBH=1234;
DELETE ZD_KSFL_TEST WHERE KSBH=1234;
IF @@ERROR =0
COMMIT TRAN;
ELSE
ROLLBACK TRAN;
第二种:(使用 try-catch)
BEGIN TRY
BEGIN TRAN
UPDATE ZD_KSFL_TEST SET CYZXKS='ABC' WHERE KSBH=01200009;
--SELECT 1/0;
COMMIT TRAN
END TRY
BEGIN CATCH
RAISERROR 130001'提示出错了!' ;
ROLLBACK TRAN ;
END CATCH
第三种:(使用存储过程)
--创建错误消息提示的 存储过程
if (object_id('proc_error_info') is not null)
drop procedure proc_error_info
go
create proc proc_error_info
as
select
error_number() '错误编号',
error_message() '错误消息',
error_severity() '严重性',
error_state() '状态好',
error_line() '错误行号',
error_procedure() '错误对象(存储过程或触发器)名称';
go
--创建执行 UPDATE 的存储过程
IF(OBJECT_ID('proc_update') IS NOT NULL)
DROP PROCEDURE proc_update;
GO
CREATE PROC proc_update
AS
UPDATE ZD_KSFL_TEST SET CYZXKS='ABC' WHERE KSBH=01200009;
GO
BEGIN TRY
BEGIN TRAN
EXEC proc_update; --执行update 存储过程
--SELECT 1/0;
COMMIT TRAN
END TRY
BEGIN CATCH
EXEC proc_error_info; --执行错误消息提示的存储过程
ROLLBACK TRAN
END CATCH