【发布时间】:2013-11-11 08:06:01
【问题描述】:
在我的 Web 应用程序中,我正在创建一个日志进程。我创建了一个更新触发器,它工作得很好,但我需要知道谁更新了这个数据,即执行这个操作的用户。
我已经用谷歌搜索并要求使用 context_info。什么意思?
如何将这些信息存储在触发器表中?
这是我的程序..我使用了你的概念..
ALTER Procedure [dbo].[MIS_CompOffDate]
(
@EmpId nvarchar(20),
@UserName nvarchar(50),
@ActualDate datetime,
@DayName nvarchar(20),
@CompOffDate datetime
)
As
Begin
DECLARE @UserNameConverted VARBINARY(128) = CONVERT(VARBINARY(128), @EmpId);
SET CONTEXT_INFO @UserNameConverted;
INSERT INTO MIS_BM_CompOff values(@EmpId, @UserName, @ActualDate, @DayName, @CompOffDate)
End
在empid中——用户的empid就在那里……
【问题讨论】:
-
哪个用户? SqlServer 用户? Web 认证用户 ?它们是一样的吗?
-
除非是数据库用户进行更新,否则为什么不使用触发器,而让应用程序进行更新?
-
@RaphaëlAlthaus Web 认证用户,不,他们不一样
-
所以没有办法用触发器来获取它们(我会说)。
-
@RaphaëlAlthaus,那么如何实现这个概念的任何建议..
标签: sql sql-server triggers sql-server-2012