【发布时间】:2012-09-13 10:44:40
【问题描述】:
我正在尝试在任意数据库中设置一个触发器,该触发器将在执行时将信息存储在特定数据库中。但是,我发现如果触发器是由没有显式访问该数据库的人触发的,则触发器执行将失败。
我希望通过以下方式解决这个问题:
CREATE TRIGGER [myTrigger]
on database
with execute as 'UserWithPermissions'
但这似乎也不起作用......有谁知道这是否可能?任何指针将不胜感激。谢谢。
【问题讨论】:
-
让任何触发器访问它自己的数据库之外的any 资源通常是一个坏 的想法。数据库是 SQL Server 中恢复/可用性的单位 - 您真的希望第二个数据库(在任何时候)不可用以防止原始事务提交吗?通常最好使用一些东西(队列表和代理作业,或服务代理)将外部活动与原始事务分离。
标签: sql-server tsql triggers ddl