2009-11-10 153 views
1
id country_name region  area   population 

    1 LASvega  Americas  2314  2134562  
    2 California AMERICAS  10101  2134562 
    3 Algeria  Middle East 24000000 32900000 
    4 Andorra  Europe  468  64000   

觸發刪除查詢,就在此觸發器被觸發並保存到另一個表中的記錄。如果我想刪除記錄沒有3,然後將其保存到另一個表中。創建刪除前觸發器?

+0

請停止使用「mssql」標記您的問題,並使用「sql-server」 - 「mssql」已經過時了。 – 2009-11-11 04:21:47

回答

4

您可以使用UPDATE或DELETE觸發器中可用的特殊Deleted表。

CREATE TRIGGER trg 
ON tbl 
FOR DELETE 

INSERT INTO OtherTable 
    SELECT * FROM Deleted 
+0

我想刪除用戶給出的特定記錄。在此之前,我想觸發觸發器。並將該刪除的行保存到另一個表中以提供任何名稱。 – sikender 2009-11-11 00:33:26

+0

@Sikender:SQL Server不提供before刪除觸發器。但是,在觸發刪除後觸發器的過程中,被刪除的行在僞表DELETED中可用。對於如何保存這些行,dnolan有正確的想法。 – 2009-11-11 05:08:38

+1

@Sikendar:在刪除之前捕獲的唯一另一種替代方法是使用存儲過程,該存儲過程包裝了刪除命令以及您希望在其之前執行的任何代碼 – dnolan 2009-11-11 08:50:00