使用觸發器一次性修改多條記錄

2021-07-25 10:10:34 字數 915 閱讀 7186

要注意:觸發器的觸發是操作,而不是針對行記錄,這也是為什麼我一次刪除、新增很多資料時結果只有一條記錄被觸發出來,在面對一條sql語句刪除了、新增了多條記錄時需要使用游標進行操作

sql server

場景:三張表 on_duty,on_duty_future,on_duty_history1

在on_duty中刪除一條記錄,就把資料插入到另外兩張表中,資料庫語句如下:

create trigger triforhiry 

on on_duty

for delete

asbegin

declare yb cursor /*宣告游標*/

for

select id,base from deleted

open yb

declare @id int,@base varchar(20)

fetch next from yb into @id,@base/*讀取第一條資料*/

while(@@fetch_status=0) /*表示成功執行fetch語句*/

begin

/* 將on_duty_future中相應的值班資訊存入on_duty*/

insert into on_duty_future values(@id,@base,'','','','','','')

insert into on_duty_history1 values(@id,@base,'','','','','','')

fetch next from yb into @id,@base /*游標下移*/

endclose yb

deallocate yb

end

最後結果就是執行一條刪除多條資料的sql語句,在其他兩張表中新增了刪除數量的資料。

用checkbox一次性刪除多條記錄

答一朋友問題 如何一次性刪除多條記錄。乙個簡單示例 現有乙個學生資訊資料庫,需要一次性刪除多條記錄 建立乙個名為del.php的檔案 如下 1 form action sc.php method post 2 table border 1 width 60 align center 3 captio...

一次性執行多條SQL語句

本地 windows 192.168.55.133 遠端1 192.168.55.9 遠端2 192.168.55.10 利用phpmyadmin來賂遠端sql server匯入大量資料時,會很慢,基於卡死。因為,它是通過web方式來上傳的,匯入之前它會首先將要匯入的.sql檔案先上傳到伺服器然後再...

shell一次性執行多條命令

1.每個命令之間用 隔開說明 各命令的執行給果,不會影響其它命令的執行。換句話說,各個命令都會執行,但不保證每個命令都執行成功。2.每個命令之間用 隔開 說明 若前面的命令執行成功,才會去執行後面的命令。這樣可以保證所有的命令執行完畢後,執行過程都是成功的。3.每個命令之間用 隔開 說明 是或的意思...