我在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
答案 0 :(得分:1)
尝试与Dedicated Administrator Connection建立联系。这将使您有机会禁用错误的登录触发器。
DISABLE TRIGGER [TDY_Assets_Notification] ON ALL SERVER