查看只读列
答
嗯,我认为你需要的视图,以便不直接更新的基础表而不是使用触发器。
这是一篇文章解释他们。 Article
另一个例子。示例代码如下所示。 Article2
样品 (当然,你需要修改这个以满足您的观点。)
CREATE TRIGGER tr_Employees_U on Employees FOR UPDATE AS
IF UPDATE(lastname)
BEGIN
RAISERROR ('cannot change lastname', 16, 1)
ROLLBACK TRAN
RETURN
END
GO
使用触发器之一:他们的
1)错误尝试更新列
2)只是不更新该列
然后你应该是设置。
答
我知道这是一个老问题,但我碰到它搜索档案,并有(我认为)一个更好的解决方案。原始海报可能并不在意,但它可能会帮助其他人研究相同的问题。
如果您在您的视图中定义了一个字段,使其只能作为某个操作的结果进行读取,它将自动无法更新,而且这比创建和维护触发器更简单。
在我的情况下,我加入了一个辅助表,我希望显示加入的字段,但不允许任何人对其进行更改,因为它随后会更改所有连接的记录,而不仅仅是正在编辑的记录。该字段是一个简单的文本,名为Pristup。我所做的只是在视图定义字段:
LTRIM(Pristup)Pristup
此名称不变,但内容不能改变,无论权限。简单,彻底有效。
完美,我会用它。 谢谢 – 2009-01-28 11:57:30