问题:
在我们的 SQL-Server 2005 数据库中,我们有一个表 T_Groups。
除其他外,T_Groups 还具有字段 ID (PK) 和名称。
现在我们公司的一些白痴使用名称作为映射表中的键...
这意味着现在人们不能更改组名称,因为如果这样做,映射就会消失......
现在,在这个问题得到解决之前,我需要向 T_Groups 添加一项限制,这样就无法更新组的名称。
请注意,插入应该仍然是可能的,并且不更改组名的更新也应该是可能的。
另请注意,应用程序的用户和开发人员同时拥有 dbo 和 sysadmin 权限,因此 REVOKE/DENY 不起作用。
我怎样才能用触发器做到这一点?
最佳答案
CREATE TRIGGER dbo.yournametrigger ON T_Groups
FOR UPDATE
AS
BEGIN
IF UPDATE(name)
BEGIN
ROLLBACK
RAISERROR('Changes column name not allowed', 16, 1);
END
ELSE
BEGIN
--possible update that doesn't change the groupname
END
END
关于sql - T-SQL : How to deny update on one column of a table via trigger?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13082595/