1. 程式人生 > >SQL Server中,插入資料報錯

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插入資料,而當前伺服器上不存在這個資料庫,所以會報錯。