偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

使用SQL觸發(fā)器刪除級聯(lián)記錄

數(shù)據(jù)庫 SQL Server
SQL觸發(fā)器:當改變(增、刪、改)數(shù)據(jù)表的記錄時,綁定在SQL語句(增、刪、改)中的觸發(fā)器能夠觸發(fā)某些事件或者函數(shù),所以我們可以在觸發(fā)器中編寫一些處理語句。

下文將為您介紹使用SQL觸發(fā)器來刪除級聯(lián)揭露的方法,并附相關實例,供您參考,希望對您有所幫助。

SQL觸發(fā)器:當改變(增、刪、改)數(shù)據(jù)表的記錄時,綁定在SQL語句(增、刪、改)中的觸發(fā)器能夠觸發(fā)某些事件或者函數(shù),所以我們可以在觸發(fā)器中編寫一些處理語句。

比如,當我們刪除新聞類別的時候,由于外鍵的原因,我們無法刪除新聞類別下有新聞內容的記錄,但是通過觸發(fā)器,我們就可以實現(xiàn)。

delete from category where id=5  --sql刪除語句

create trigger trigcategorydelete  --當執(zhí)行sql刪除語句時,執(zhí)行觸發(fā)器

on category

after delete

as

begin

delete news where caId=(select id from deleted) --刪除對應新聞類別的新聞內容

end

照一般的思維,這樣就可以同時刪除新聞類別和其下的新聞內容,但是這樣執(zhí)行卻不成功。是因為關鍵字AFTER,AFTER表示在執(zhí)行SQL刪除語句后,再執(zhí)行觸發(fā)器里的語句。這樣一來,順序同樣是先刪除新聞再刪除新聞內容,肯定不成功。

改變關鍵字after為instead of#p#

instead of,表示代替delete操作,而沒有真正delete from category where id=5,當category表的刪除時,同時觸發(fā)了trigcategorydelete觸發(fā)器,但是由于有instead of關鍵字,所以本身并不執(zhí)行刪除操作,而是執(zhí)行觸發(fā)器里的sql語句,從而可以替代之前的SQL語句。比如:

create trigger trigcategorydelete

on category

instead of delete

as

begin

declare @id int  --定義一個變量id

select @id=id from deleted  --從deleted臨時表中,賦值id給變量@id

delete news where caId=@id  --先刪除該類別下的所有新聞

delete category where id=@id  --然后刪除新聞類別 

end

當我們執(zhí)行 delete from category where id=5時,id=5的類別并沒有真正刪除,而是轉而執(zhí)行觸發(fā)器里面的SQL語句

關于deleted表:

Deleted表用于存儲 DELETE 和 UPDATE 語句所影響的行的復本。在執(zhí)行 DELETE 或 UPDATE 語句時,行從觸發(fā)器表中刪除,并傳輸?shù)絛eleted表中。Deleted表和觸發(fā)器表通常沒有相同的行。(//最后一句不是怎么明白???) by google

刪除一條記錄時候,他會把刪除的這條記錄放在一張臨時表里,當你對category表進行刪除時,在SQL返回的結果消息里面會提示出你刪除的記錄。

責任編輯:段燃 來源: CNBLOGS
相關推薦

2009-04-07 13:56:03

SQL Server觸發(fā)器實例

2011-03-28 10:05:57

sql觸發(fā)器代碼

2010-05-18 15:36:44

MySQL觸發(fā)器

2010-05-18 15:58:39

MySQL觸發(fā)器

2010-09-13 17:03:34

sql server觸

2011-05-20 14:06:25

Oracle觸發(fā)器

2009-04-26 22:27:54

觸發(fā)器密碼修改數(shù)據(jù)庫

2010-07-06 14:47:03

SQL Server數(shù)

2010-07-16 10:19:31

2010-11-12 15:35:55

SQL Server約

2010-10-12 10:10:55

mysql觸發(fā)器

2010-10-22 11:10:43

SQL Server觸

2021-08-05 07:28:27

SQL觸發(fā)器結構

2010-11-08 11:49:24

SQL Server管

2010-10-20 14:34:48

SQL Server觸

2010-07-05 11:01:37

Sql Server觸

2011-03-03 09:30:24

downmoonsql登錄觸發(fā)器

2010-11-11 10:03:58

SQL Delete命

2010-07-05 11:09:55

SQL Server觸

2010-11-10 13:37:01

SQL Server觸
點贊
收藏

51CTO技術棧公眾號