Udostępnij za pośrednictwem


SYSTEM_USER (Transact-SQL)

Zezwala na wartości dostarczonych przez system dla bieżącego logowania ma zostać wstawiony do tabela , jeśli nie określono żadnej wartości domyślnej.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

SYSTEM_USER

Zwracane typy

nchar

Uwagi

Za pomocą funkcja SYSTEM_USER z ograniczeniami domyślnie w instrukcji CREATE TABLE i ALTER TABLE.Można również użyć go jako wszelkich standardowych funkcja.

Jeśli nazwa użytkownika i nazwa użytkownika są różne, SYSTEM_USER zwraca nazwę logowania.

Jeśli bieżący użytkownik jest zalogowany do SQL Server SYSTEM_USER za pomocą uwierzytelniania systemu Windows, zwraca nazwy identyfikatora logowania systemu Windows w postaci: Domena\user_login_name.Jednakże jeśli bieżący użytkownik jest zalogowany do SQL Server przy użyciu uwierzytelniania SQL Server, zwraca SYSTEM_USER SQL Server Nazwa identyfikator logowania, takich jak WillisJo użytkownik zalogowany jako WillisJo.

SYSTEM_USER zwraca nazwę aktualnie wykonywanym kontekście.Jeśli jako wykonywanie instrukcja były używane do przełączania kontekstu, SYSTEM_USER zwraca nazwę kontekście personifikowanego.

Przykłady

A.Zwraca nazwę bieżącego użytkownika systemu przy użyciu SYSTEM_USER

Poniższy przykład deklaruje char zmiennej, która przechowuje bieżącą wartość SYSTEM_USER w zmiennej, a następnie drukuje wartość przechowywana w zmiennej.

DECLARE @sys_usr char(30);
SET @sys_usr = SYSTEM_USER;
SELECT 'The current system user is: '+ @sys_usr;
GO

Oto zestaw wyników.

----------------------------------------------------------

The current system user is: WillisJo

(1 row(s) affected)

B.Ograniczenia DOMYOLNE przy użyciu SYSTEM_USER

Poniższy przykład tworzy tabela o SYSTEM_USER jako DEFAULT ograniczenie dla SRep_tracking_user kolumna.

USE AdventureWorks2008R2;
GO
CREATE TABLE Sales_Tracking
(
    Territory_id int IDENTITY(2000, 1) NOT NULL,
    Rep_id  int NOT NULL,
    Last_sale datetime NOT NULL DEFAULT GETDATE(),
    SRep_tracking_user varchar(30) NOT NULL DEFAULT SYSTEM_USER
)
GO
INSERT Sales_Tracking (Rep_id)
VALUES (151)
INSERT Sales_Tracking (Rep_id, Last_sale)
VALUES (293, '5/15/98')
INSERT Sales_Tracking (Rep_id, Last_sale)
VALUES (27882, '6/20/98')
INSERT Sales_Tracking (Rep_id)
VALUES (21392)
INSERT Sales_Tracking (Rep_id, Last_sale)
VALUES (24283, '11/03/98')
GO

Następujące kwerendy do wybiera wszystkie informacje z Sales_Trackingwtabela:

SELECT * FROM Sales_Tracking ORDER BY Rep_id;
GO

Oto zestaw wyników.

Territory_id Rep_id Last_sale SRep_tracking_user

----------- ----- -------------------- ------------------

2000 151 Mar 4 1998 10:36AM ArvinDak

2001 293 May 15 1998 12:00AM ArvinDak

2003 21392 Mar 4 1998 10:36AM ArvinDak

2004 24283 Nov 3 1998 12:00AM ArvinDak

2002 27882 Jun 20 1998 12:00AM ArvinDak

(5 row(s) affected)