我正在创建一个用于审核用户操作的sql server 2008数据库表。
是否可以创建一个只能插入的数据库表 - 不允许对表中的数据进行截断,删除或更新。我所知道的一个选择是使用权限有限的其他用户,但这不是我的选择。那么看其他选择呢?
答案 0 :(得分:3)
你需要创建一个触发UPDATE和DELETE的TRIGGER并抛出错误:
CREATE TRIGGER user_action_update on UserActions FOR UPDATE, DELETE AS
BEGIN
RAISERROR ('Cannot modify or delete user actions', 16, 1)
ROLLBACK TRAN
RETURN
END
GO
答案 1 :(得分:1)
另一种方法是为表编写一个触发器创建脚本,并将操作设置为“INSTEAD OF”,它将覆盖某些其他代码或空代码的触发操作(在您的情况下不需要的操作)。 / p>
INSTEAD OF Property 指定执行DML触发器而不是触发SQL语句,因此,覆盖触发语句的操作。
以下是如何为触发器创建编写SQL语句的链接:
http://technet.microsoft.com/en-us/library/ms189799.aspx
祝你好运