SQL Server中,插入数据报错

有时候在一个表中插入数据,(插入语句都正常,没有任何错误)但是插入报错,这时候可以查找一下是否这张表是否加了trigger(触发器),导致数据插入失败的。、

还有类似的删除操作也有可能出现这种情况。


假如正常的插入语句,但是表加了触发器,如下触发器:


假设当前的数据库是:数据库A

ALTER trigger [dbo].[tri_proc]
on [dbo].[表A]
after insert
as
begin
SET NOCOUNT ON
SET XACT_ABORT ON
DECLARE @CarNum numeric(10, 0), @SeqNum numeric(10, 0),@CompanyCode numeric(10, 0);
SELECT @CarNum=CarNumber, @SeqNum=SeqNo FROM inserted;
INSERT 数据库B.dbo.表B(CarNum,SeqNum,CompanyCode)VALUES(@CarNum,@SeqNum,(Select top 1 CompanyCode from 某个表 where CarNumber = @CarNum));
END

上述的错误发生是:在数据库A上,插入了名为“tri_proc”的触发器,假如当前数据库服务器上不存在数据库B,那么在插入数据的时候,会报“数据库B.dbo.表B无效”,往表A插入数据的时候,里面的触发器会往数据库B的表B插入数据,而当前服务器上不存在这个数据库,所以会报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值