想帮助LOGON Trigger

时间:2010-05-20 21:40:23

标签: sql sql-server-2008

我在MS SQL中创建了一个登录触发器,需要检查dm_exec_sessions以进行登录。此登录名是连接字符串中列出的用户,拥有数据库的所有者权限。如果登录已经过验证,我需要它来更新特定的表并发送电子邮件。

到目前为止,我已经完成了以下部分并禁用了我的网站。我得到的错误是:“由于触发器执行,登录'dev'登录失败。将数据库上下文更改为'mydatabase'。将语言设置更改为us_english。”

知道我做错了什么吗?谢谢,

Risho

CREATE TRIGGER TDY_Assets_Notification
ON ALL SERVER WITH EXECUTE AS 'dev'
FOR LOGON
AS
BEGIN

IF ORIGINAL_LOGIN()='dev' AND
    (SELECT COUNT(*) FROM sys.dm_exec_sessions
            WHERE is_user_process = 1 AND
                original_login_name = 'dev') > 1

     UPDATE Assets_TDY 
        SET Suspense = 1, Warning = 1
        WHERE     (Date_Returned IS NULL) AND (GETDATE() >= DATEADD(day, 3, Date_Return))

END

1 个答案:

答案 0 :(得分:1)

尝试与Dedicated Administrator Connection建立联系。这将使您有机会禁用错误的登录触发器。

DISABLE TRIGGER [TDY_Assets_Notification] ON ALL SERVER