国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

講解Microsoft SQL Server的行式觸發器

2024-08-31 00:52:38
字體:
來源:轉載
供稿:網友

曾經以為SQL SERVER的觸發器只能觸發單行,也就是說如果一個delete觸發器,如果同時刪除多行時,只會對第一條記錄觸發,后來發現了不是人家SQL SERVER不支持,而是偶腦子笨沒發現。


其實inserted和deleted兩張內部表存放了所有要插入或要刪除的記錄,可以用cursor逐次訪問里面的每條記錄,下面是一個示例,該觸發器將要刪除的記錄轉移到另一張表中:


第一步,創建這兩張表


create table table1([id] int PRimary key, [value] varchar(100))create table table2([id] int primary key, [value] varchar(100))

第二步,插入測試數據


declare @i intset @i = 1while @i <= 100begin insert into table1([id], [value]) values(@i, cast(@i as varchar)) set @i = @i + 1end

創建table1的delete觸發器


create trigger tr_d_table1 on table1 for deleteasbegin declare @id int, @value varchar(100) declare cur_del cursor local forward_only for select [id], [value] from deleted open cur_del fetch next from cur_del into @id, @value while @@fetch_status = 0 begin insert into table2([id], [value]) values(@id, @value) fetch next from cur_del into @id, @value end close cur_del deallocate cur_del end

現在對table1執行delete語句,發現所有被刪除的記錄都記錄在在table2中了

delete from table1


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乐昌市| 丰县| 定边县| 金溪县| 邵阳市| 镶黄旗| 上林县| 昌都县| 武宣县| 合作市| 江源县| 兴宁市| 武威市| 曲麻莱县| 云霄县| 南丰县| 合阳县| 岳阳市| 北京市| 乐平市| 呼图壁县| 河南省| 孟州市| 紫阳县| 齐齐哈尔市| 县级市| 犍为县| 勐海县| 永泰县| 铁力市| 威宁| 福建省| 敦化市| 桃园县| 永平县| 肇源县| 新巴尔虎右旗| 武义县| 京山县| 青岛市| 乐业县|