默认登录用户到SQL Server列

Arm*_*ian 3 sql-server default

如何创建一个列,其中包含当前在表中创建行的用户的默认值?

我试过了system_user,但是这表明从桌子上选择时谁登录了.

mar*_*c_s 7

尝试这样的事情:

CREATE TABLE DemoTable
(
    ID INT IDENTITY(1,1), 
    SomeValue VARCHAR(50), 
    CreatedBy VARCHAR(50) 
        CONSTRAINT DF_DemoTable_CreatedBy DEFAULT(SUSER_NAME())
) 
Run Code Online (Sandbox Code Playgroud)

您基本上在其中一个列上创建了一个默认约束,并使用该SUSER_NAME()函数用当前登录的用户填充它.

然后,当您将值插入该表时:

INSERT INTO dbo.DemoTable(SomeValue) VALUES('Some Value')
Run Code Online (Sandbox Code Playgroud)

并且您没有指定显式值CreatedBy,该列填充了SUSER_NAME()函数中的值,您可以通过从表中选择来检查:

SELECT * FROM dbo.DemoTable
Run Code Online (Sandbox Code Playgroud)

SUSER_NAME()SUSER_ID()在TechNet上阅读更多关于和一些相关功能(如)的内容.