栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在SQL Server中创建接受外部参数的触发器?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在SQL Server中创建接受外部参数的触发器?

您需要重新设计您的方法。数据库无法 只知道
有关您的应用程序用户信息的任何信息。而且,不,您不能将参数传递给触发器。但是您可以通过触发来引用您自己的表,因此有一种方法…

当您连接到数据库时,每个连接都会获得其自己的进程ID。您可以通过@@ spid获得此信息。

因此,当触发器触发时,您可以使用它来知道是哪个连接导致了更改。

您可以使用相同的数据库登录名进行100个并发连接,并且每个连接都有其自己的@@ spid值。

为了使它对您有用,您需要准备所有连接。每次建立连接时,您的应用程序都应写入表中,以记录使用该@@ spid的应用程序的用途。

也许像…这样简单

CREATE TABLE  map_spid_application_user (    spid          BIGINT,    application   VARCHAr(128),    user          VARCHAr(128),    PRIMARY KEY (spid)  )

然后,在每个连接上,运行类似这样的内容(可能通过存储过程)…

DELETE map_spid_application_user WHERe spid = @@spidINSERT INTO map_spid_application_user SELECT @@spid, 'myApp', 'myUser'

然后,在触发器中,您可以在此表上引用/联接以查找@@ spid引用的人。

您还可以变得更聪明,并使用类似的方法来永久记录用户连接的内容(如spid)。任何spid的当前用户将始终是连接日期时间最近的用户。

那时您几乎可以做任何事情。因为您正在创建所有信息,而不是依靠数据库 仅知道 @@ spid以外的任何信息。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/669935.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号