默认登录到SQL Server列的用户

2022-04-19 00:00:00 default sql-server

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

我尝试了system_user,但从表中选择时会显示登录人员。


解决方案

尝试如下:

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())。

相关文章