当前位置:首页 > SQL Server > 正文内容

SQL Server 触发器使用try catch

管理员3年前 (2017-12-29)SQL Server293

触发器使用try catch

create table t(id int identity, name varchar(10))
go
create table bak(id int, name varchar(10))
go
create trigger tri_t_ins
on t for insert
as
begin
    set xact_abort off
    begin try
        declare @ids varchar(200) = ''
        select @ids = @ids + ltrim(id) + ',' from inserted
        select @ids = substring(@ids,1,LEN(@ids) -1)
        exec ('insert into bak select * from t where id in(' + @ids + ')')
    end try
    begin catch
        RAISERROR('ERROR : backup failure!',10,1)
    end catch
end
go
insert into t values('china'),('beijing')
go
print '-- 删除掉表后,再看看效果'
drop table bak
insert into test values('usa'),('new york')
go
select * from t
go
drop table t
go

(2 行受影响)

(2 行受影响)
-- 删除掉表后,再看看效果
ERROR : backup failure!


(2 行受影响)
id name
----------- ----------
1 china
2 beijing
3 usa
4 new york


(4 行受影响)
打赏 支付宝打赏 微信打赏
    扫描二维码至手机访问

    扫描二维码推送至手机访问。

    版权声明:本文由卖水果的net发布,如需转载请注明出处。

    转载请注明出处:http://www.msgde.net/mssql/sqlserver_use_trycatch.html

    分享给朋友:

    相关文章

    发表评论

    访客

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。