如何创建永远不会更新的列?

时间:2010-05-22 19:01:10

标签: sql-server

在SQL Server 2008中,是否可以创建一个可以插入值的列,但永远不能更新?换句话说,该列可以插入一个初始值,但是一旦它包含非空值,就永远不能更改它。如果可能的话,我宁愿不使用触发器来做。

谢谢 - 兰迪

2 个答案:

答案 0 :(得分:2)

您不能将列定义为只读,但是您可以通过设置对列的权限来实现目标,以便可以插入但不会被数据库中的所有相关用户/角色/组更新?

编辑:

我误解了你的一些规范,如果你需要允许某人“插入”一个null,它只在输入空值时才会读取,那么你可能需要一个触发器 - 阻止更新或者在输入非空值后设置列的拒绝权限。

答案 1 :(得分:1)

你必须使用触发器。

您可以对列本身进行GRANT INSERT和DENY UPDATE,但这会阻止您在初始INSERT之后从NULL更新为某些内容。