1

我在表上删除了触发器,在其中我使用函数 HOST_NAME() 来检索执行操作的用户,然后我检查用户表中是否存在用户,如果不存在则我抛出 Raiserror。操作是从 ASP.NET Web 应用程序执行的,在该应用程序中,我将“工作站 ID”动态添加到连接字符串,以便在删除触发器中具有当前记录的用户名。

问题是我有时必须从 SSMS 手动运行一些脚本,并且 Host_Name() 包含 sql server 中当前登录用户的名称,但是该用户在 User 表中没有相应的行,然后发生 Raiserror。问题是如何从 SSMS 运行删除脚本并且没有 Rairserror?

4

1 回答 1

0

答案很简单,创建覆盖 Host_Name() 的自定义函数,如果 Host_Name() 包含名称为 XYZ 的用户,那么我返回在 User 表中具有相应行的系统用户的常量名称。

于 2012-04-28T14:55:48.387 回答