解決觸發器批量插入時只有第條一資料生效問題

2021-09-29 15:28:41 字數 720 閱讀 1131

如果是批量插入資料則要宣告乙個表來拿到這批插入的資料。如果只是宣告乙個變數值,則只能拿到第一條資料,所以這就會導致批量資料插入時觸發器無效的原因。

實際例子:

--建立表

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...