SQL 插入后的列只读无触发器

SQL Column after insert read only without trigger

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

Create-Table-Statemant

中有解决我的"problem"的方法吗

不,也许是:)

这不能通过单个 table 完成,但可以创建另一个 table 并为其创建 FK。具有适当的安全性(仅通过使用证书签名的存储过程插入主 table 并拒绝对引用的 table 进行修改,除了从同一证书创建的用户以外的所有人,例如),这将使某人很难修改它。当然,一个admin/owner用户是不能被阻止的。

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

也许 Column 权限对您有用。

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