插入后的SQL列为只读,不带触发器



我必须创建两列(创建者,创建日期),这是在插入只读之后。插入后不能更改这两个字段。我知道使用sql触发器可以解决这个需求。但我认为这不是一个舒适的解决方案。

有没有解决方案可以解决我在Create-Table-Statemant 中的"问题"

也许列权限对您有用。

DENY UPDATE ON dbo.MyTable (Creator, CreationDate) TO SampleRole;

否,可能是:)

这不能用一个表来完成,但可以创建另一个表并为其创建FK。如果有适当的安全性(仅通过用证书签名的存储过程插入主表,并拒绝除使用同一证书创建的用户之外的所有人修改引用的表),这将使某人很难修改它。当然,管理员/所有者用户是不能被阻止的。

LMK,如果你希望我用代码扩展答案。

最新更新