如果是批量插入資料則要宣告乙個表來拿到這批插入的資料。如果只是宣告乙個變數值,則只能拿到第一條資料,所以這就會導致批量資料插入時觸發器無效的原因。
實際例子:
--建立表
create
table test_1
(fid int
,typeid varchar(36
));-- 新增乙個插入資料後觸發的觸發器
create
trigger tg_test on test_1
after
insert
asbegin
--declare @fbilltypeid nvarchar(50),@fidint;應該改宣告乙個表
declare
@table
table
( fid int
,fbilltypeid nvarchar(60)
);--宣告表
insert
into
@table
( fid, typeid )
select fid
,typeid
from inserted;
if typeid =
'02'
begin
select
1 aa;
end;
end;
關於批量插入時觸發器的使用
終於突破這個關口了。兩天半時間沒有白費。批量插入時,主要使用 游標遍歷資料庫實現 建立測試表 if exists select from dbo.sysobjects where id object id n dbo 實際銷售表 and objectproperty id,n isusertable...
記錄一次批量刪除mysql觸發器
最近做bug復現的時候,需要將正式環境的資料庫備份到本地,進行問題排查,但是正式環境的資料庫被加了好多的觸發器,導致本地一直報錯。乙個乙個刪,要300多個,平均乙個表3個,一條一條刪估計要好久,然後問了一下我們這邊的x大佬。他秀了一把神操作 select concat drop trigger tr...
觸發器中 一次插入多條資料
觸發器中 select id from inserted 這個句子有個情況不適合,就是如果一次操作插入的是多行,這條語句不就不行了麼,那為什麼檢查語法時還沒錯誤呢 create trigger tr zz on zz for insert asbegin declare zzlb varchar 3...