0

我需要在我的所有表中添加两列,它们是LastUpdateDateLastUpdateUserId。我不使用实体框架,而是在存储过程中执行所有 CRUD 操作。我的问题是我有超过 150 个存储过程,并且在我的项目中更改 150 个存储过程以及这些存储过程的引用将花费大量时间。

如果没有LastUpdateUserId列,我会LastUpdateDate在表中有更新时使用触发器插入值。但LastUpdateUserId情况复杂。

所以你有什么建议?有什么方法可以发送带有连接字符串的可选值,然后也许我可以在存储过程中获取该值?

4

2 回答 2

1

假设您使用的是 Windows 身份验证,您应该能够使用SUSER_SNAME()或获取当前用户的登录名ORIGINAL_LOGIN()。这通常包括域名。

或者,您可以滥用连接字符串的“应用程序名称”属性,并使用该APP_NAME()函数检索它。

于 2013-05-31T17:06:26.217 回答
1

为了这个目的,我们滥用了stationId 字段。不过,这是针对特定用例的。

但是,如果您更改每个用户的连接字符串,您将失去连接池为您提供的所有好处。

如果您对所有用户使用相同的登录名,那么恐怕真正做到这一点的唯一方法就是更改您的 procs。

如果每个用户都有自己的登录名,则有 SQL 来获取该值,正如其他人所指出的那样。

于 2013-05-31T17:20:11.313 回答