sql 觸發器 游標


在數據庫中,刪除一條記錄的同時想要刪除另一個表里的數據,這時我們可以選擇使用觸發器。觸發器主要是通過事件進行觸發被自動調用執行的,而存儲過程可以通過存儲過程的名稱被調用。觸發器是當對某一個表進行操作。諸如:update、insert、delete這些操作的時候,系統會自動調用執行該表上對應的觸發器。

創建觸發器 語法:

create trigger tgr_name
on table_name
with encrypion –加密觸發器
for update...
as
Transact-SQL


對於每次只處理一條記錄的情況,使用簡單的觸發器是沒有問題;當一次處理多條數據的時候,簡單的觸發器滿足不了需求,這里給出一個處理方案;觸發器和游標結合使用。

在性能上,游標會吃更多的內存,減少可用的並發,占用寬帶,鎖定資源。。

ALTER TRIGGER [dbo].[deleteClassSetTrigger]    --新建觸發器
ON [dbo].[t_d_ExercitationClassSet]  --在某個表中新建的觸發器
for delete  --做的什么操作觸發觸發器
AS
BEGIN
declare @id int --定義變量id
declare cur_delete cursor  --定義游標
for
select ExercitationClassSetId from deleted --從刪除的數據中找到某個字段值
open cur_delete  --打開游標
fetch next from cur_delete into @id 
while @@fetch_status=0
begin
delete t_d_ExercitationClass where ExercitationClassSetId=@id --執行符合條件的SQL語句
fetch next from cur_delete into @id --查找下一條數據
end
close cur_delete --關閉游標
deallocate cur_delete --刪除游標引用
end

 





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM