SQL Server中,插入数据报错

来源:互联网 发布:域名注册怎样收费 编辑:程序博客网 时间:2024/05/22 06:05

有时候在一个表中插入数据,(插入语句都正常,没有任何错误)但是插入报错,这时候可以查找一下是否这张表是否加了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插入数据,而当前服务器上不存在这个数据库,所以会报错。

原创粉丝点击