默认登录用户到 SQL Server 列

Posted

技术标签:

【中文标题】默认登录用户到 SQL Server 列【英文标题】:Default logged in user to SQL Server column 【发布时间】:2013-11-16 09:04:07 【问题描述】:

如何在表中创建具有当时创建行的用户的默认值的列?

我试过system_user,但从表格中选择时显示谁已登录。

【问题讨论】:

【参考方案1】:

试试这样的:

CREATE TABLE DemoTable
(
    ID INT IDENTITY(1,1), 
    SomeValue VARCHAR(50), 
    CreatedBy VARCHAR(50) 
        CONSTRAINT DF_DemoTable_CreatedBy DEFAULT(SUSER_NAME())
) 

您基本上是在其中一个列上创建一个默认约束,然后使用SUSER_NAME() 函数将当前登录的用户填充到其中。

当您随后将值插入该表时:

INSERT INTO dbo.DemoTable(SomeValue) VALUES('Some Value')

而您CreatedBy 指定显式值,该列将填充来自SUSER_NAME() 函数的值,您可以通过从表中选择来检查:

SELECT * FROM dbo.DemoTable

Read more about SUSER_NAME() and a few related functions(如 SUSER_ID())在 TechNet 上。

【讨论】:

谢谢,成功了!问题是,我使用了计算值功能......问题,有没有办法限制用户手动添加到“CreatedBy”......

以上是关于默认登录用户到 SQL Server 列的主要内容,如果未能解决你的问题,请参考以下文章

SQL SERVER如何新建一个登陆用户

“无法打开用户默认数据库。登录失败。”安装 SQL Server Management Studio Express 后

在sql server 2000上用sa登录sql查询分析器的时候报错:无法打开用户默认数据库

SQL Server 2016 - 如何获取用户的最后登录日期?

sqlserver2012不带登录名的用户

将现有数据库用户映射到SQL Server登录。