【问题标题】:SQL Server - Display the username in a columnSQL Server - 在列中显示用户名
【发布时间】:2014-03-07 16:45:34
【问题描述】:

我们有一个 SQL Server 2012 数据库,供 4 位开发人员使用,我们称他们为 user1、user2、user3、user4。

我想在其中一个表中创建一列让我们调用列User_Input,该列需要显示插入任何数据的开发人员的用户名,这可能吗?例如,如果 user2 插入了一条新记录,则 User_Input 列应显示 user2。

如果 SQL Server 不支持,请告诉我,如果有任何其他解决方案导致我搜索了 SQL Server 的 @@ 函数,但似乎没有一个得到用户名。

【问题讨论】:

  • 我假设他们使用不同的凭据进行连接,而不是全部使用单个 SQL Server 用户帐户进行连接?如果是这样,您可以使用System_User
  • 没错,每个人都有自己的账户。

标签: sql sql-server


【解决方案1】:

SYSTEM_USER 函数将返回用户的登录名。

您可以使用以下语句对其进行测试: 选择 SYSTEM_USER

MSDN documentation for SYSTEM_USER 声明:

您可以使用带有 DEFAULT 约束的 SYSTEM_USER 函数 CREATE TABLE 和 ALTER TABLE 语句。您也可以将其用作任何 标准函数。

下面是一个快速示例,说明如何创建一个带有 DEFAULT 约束的表,该约束将SYSTEM_USER 插入到 User_Input 列中。

CREATE TABLE MyTable 
(
   ID int, 
   Value varchar(30), 
   User_Input varchar(200) DEFAULT SYSTEM_USER
)   

【讨论】:

    【解决方案2】:

    我相信这就是你要找的。​​p>

    SELECT SYSTEM_USER
    

    您可以根据需要将其添加到插入/更新中。

    CURRENT_USER 提供架构,而不是与事务关联的登录。

    【讨论】:

    • 感谢帮助,没错,我们需要用到System_User函数。
    猜你喜欢
    • 2013-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-26
    • 1970-01-01
    • 2019-09-15
    • 2013-03-23
    相关资源
    最近更新 更多