且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

防止特定记录被删除

更新时间:2023-12-02 08:02:58

您有一个INSTEAD OF触发器,因此您需要在其中进行实际的删除。

You have an INSTEAD OF trigger so you need an actual DELETE in it.

我还将考虑简单地过滤保护行,因为:

I'd also consider simply filtering the protected row out because:


  • 是否需要抛出错误?还是默默忽略?

  • 删除包含受保护行的多行怎么办:中止整个操作,还是删除其余行?

类似的东西:

ALTER TRIGGER [Globalization].[CountriesTracker]  ON [Globalization].[Countries] 
 INSTEAD OF DELETE
 AS 
SET NOCOUNT ON;

DELETE
   CT
FROM
   [Globalization].[Countries] C
   JOIN
   DELETED D ON C.CountryId = D.CountryId
WHERE
    [Deleted].[CountryId] <> '36bd1536-fb56-4ec4-957e-1b3afde16c56'
 GO