是否可以在SQL Server 2008 R2中强制执行只读字段?

Gif*_*guy 0 sql database sql-server persistence readonly

我想要防止在我的数据库中写入ceartain字段的UPDATE查询.我还想在某些表上防止任何类型的UPDATE或DELETE查询,因为这些表包含需要无限期持久化的永久信息.

这些配置可以在SQL Server Management Studio中实现吗?

mar*_*c_s 8

为了防止某些字段的更新,您可能必须在该表上有一个AFTER UPDATE触发器,用于检查是否有任何"只读"字段即将更新; 如果是,则中止交易.

CREATE TRIGGER triggerName
ON dbo.YourTable AFTER UPDATE
AS
   IF UPDATE(somefield)
      ROLLBACK TRANSACTION
Run Code Online (Sandbox Code Playgroud)

要防止某些用户访问某些表,请不要授予这些用户(或他们所属的数据库角色)对这些表的UPDATE和/或DELETE权限.