1
我正在使用具有觸發器的數據庫,以防止通過引發錯誤和不提交刪除來刪除特定表中的記錄。如果要刪除的記錄列有特定的值,我需要修改行爲以允許刪除。更改刪除觸發器以檢查列值
下面是當前的代碼:
CREATE TRIGGER [dbo].[MyTable_PreventDelete]
ON [dbo].[MyTable]
INSTEAD OF DELETE
AS
-- TODO: Only run the code below if Deleted = 0
ROLLBACK
RAISERROR('ERROR: That column may not be deleted.',16,1)
RETURN
GO
我想簡單地包裹錯誤呼叫條件,但現在看來,我不能簡單地直接引用受影響行的列:
...
CREATE TRIGGER [dbo].[MyTable_PreventDelete]
ON [dbo].[MyTable]
INSTEAD OF DELETE
AS
IF IsDeleted = 0
BEGIN
ROLLBACK
RAISERROR('ERROR: That column may not be deleted.',16,1)
RETURN
END
GO
您正在使用sql server或其他數據庫嗎? –
如果批處理中的記錄是可刪除的而有些不可刪除,那麼您需要什麼行爲?在SQL Server中,觸發器對批量數據而不是單行進行操作。 – HLGEM
SQL Server 2005.如果批處理中的任何記錄的Deleted = 0,則整個事務將失敗 – watkinsmatthewp