2014-03-07 61 views
4

我們有一個由4名開發人員使用的SQL Server 2012數據庫,可以調用它們,user1,user2,user3,user4。SQL Server - 在列中顯示用戶名

我想在一個表讓我們稱之爲列USER_INPUT以創建一個列,這列需要顯示誰插入任何數據開發者的用戶名,這可能嗎?例如,如果user2插入新記錄,則User_Input列應該顯示user2。

請讓我知道如果SQL Server不支持,如果有任何其他的解決辦法,因爲我搜索了SQL Server和他們的非@@功能似乎得到的用戶名。

+0

我假設他們使用不同的憑證進行連接,並非所有使用單個SQL Server用戶帳戶進行連接?如果是這樣,您可以使用[System_User](http://technet.microsoft.com/en-us/library/ms179930.aspx) – David

+0

這是真的,每個人都有自己的帳戶。 – user3221917

回答

2

SYSTEM_USER函數將返回用戶的登錄名。

你可以用這個語句來測試一下: SELECT SYSTEM_USER

MSDN documentation for SYSTEM_USER狀態:

您可以使用SYSTEM_USER函數DEFAULT約束在 CREATE TABLE和ALTER TABLE語句。您也可以將它用作任何 標準功能。

下面是如何使用DEFAULT約束創建表並將SYSTEM_USER插入User_Input列的快速示例。

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

完美地工作,謝謝先生。 – user3221917

0

我相信這就是你要找的。

SELECT SYSTEM_USER 

您可以根據需要添加此項以插入/更新。

CURRENT_USER提供的模式,不與交易相關的登錄。

+0

感謝您的幫助,這是正確的,我們需要使用System_User功能。 – user3221917