SQL Server:获取导致触发器更新的应用程序的名称

发布于 2024-10-22 20:17:56 字数 483 浏览 2 评论 0原文

我们正在尝试查明 SQL Server 表上发生的一些意外更新的来源。我想做的是在该表上创建一个触发器来监视我们感兴趣的列,并且当发生更新时,将一些审核信息写入单独的表中。

对于用户名、日期、旧列值和新列值(来自 InsertedDeleted 触发器表)等内容效果很好 - 但我想要更多:-)

在 SQL Profiler 中,您可以在配置文件中看到连接到 SQL Server 的应用程序的名称 - 可以在连接字符串中定义为应用程序名称的部分:

Data Source=(local);Initial Catalog=AdventureWorks;
Integrated Security=True;Application Name="My Application"

有没有办法在 T- SQL FOR UPDATE 触发器来获取此信息?

We're trying to pinpoint the source of some unexpected updates happening on a SQL Server table. What I'd like to do is create a trigger on that table monitoring that column we're interested in, and when updates occur, write some audit info into a separate table.

Works great and fine for things like user name, date, old and new columns values (from the Inserted and Deleted trigger tables) - but I'd like more :-)

In SQL Profiler, you can see the name of the app that's connected to SQL Server in the profiles - the part that can be defined in the connection string as Application Name:

Data Source=(local);Initial Catalog=AdventureWorks;
Integrated Security=True;Application Name="My Application"

Is there any way in a T-SQL FOR UPDATE trigger to get at this information?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

甜心小果奶 2024-10-29 20:17:56
SELECT APP_NAME()

SELECT APP_NAME()

谁的新欢旧爱 2024-10-29 20:17:56

Marc_S 的 sp_whoIsActive 存储过程可能会解决您的问题
如此处发布的

顺便说一下,它是 T-SQL 的很棒的一部分

Marc_S the sP_whoIsActive stored Procedure probably will solve Your problems
as posted here

and it's awesome part of T-SQL by the way

一刻暧昧 2024-10-29 20:17:56

不确定,但如果您的应用程序位于多个服务器上,您是否可以记录服务器名称?它可能有助于缩小应用程序列表的范围。

Not sure but could you possibly log the server name if you applications are on multiple servers? It might help narrow down the list of applications.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文