Udostępnij za pośrednictwem


Użytkownik (Transact-SQL)

Zezwala na wartości dostarczonych przez system dla bazy danych nazwy użytkownika bieżącego użytkownika, który 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

USER

Zwracane typy

char

Uwagi

UŻYTKOWNIK udostępnia taką samą funkcjonalność jak system nazwa_użytkownika funkcja.

Użyj użytkownika z ograniczeniami domyślnie w instrukcji CREATE TABLE lub ALTER TABLE lub jako wszelkich standardowych funkcja.

Użytkownik zawsze zwraca nazwę bieżącego kontekstu.Kiedy wywoływana po EXECUTE jak instrukcjaużytkownika zwraca nazwę kontekście personifikowanego.

Jeżeli główna Windows uzyskuje dostęp do bazy danych z członkostwa w grupie, użytkownik zwraca nazwę systemu Windows głównych zamiast nazwy grupy.

Przykłady

A.Zwraca nazwę użytkownika bazy danych przy użyciu użytkownika

Poniższy przykład deklaruje zmienną jako char, przypisuje wartość bieżącego użytkownika i drukuje zmienna o opis tekstu.

DECLARE @usr char(30)
SET @usr = user
SELECT 'The current user''s database username is: '+ @usr
GO

Oto zestaw wyników.

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

The current user's database username is: dbo

(1 row(s) affected)

B.Przy użyciu ograniczeń DOMYŚLNYCH użytkownika

Poniższy przykład tworzy tabela za pomocą USER jako DEFAULT ograniczenie dla sprzedawcy z wiersza sprzedaży.

USE AdventureWorks2008R2;
GO
CREATE TABLE inventory22
(
 part_id int IDENTITY(100, 1) NOT NULL,
 description varchar(30) NOT NULL,
 entry_person varchar(30) NOT NULL DEFAULT USER 
)
GO
INSERT inventory22 (description)
VALUES ('Red pencil')
INSERT inventory22 (description)
VALUES ('Blue pencil')
INSERT inventory22 (description)
VALUES ('Green pencil')
INSERT inventory22 (description)
VALUES ('Black pencil')
INSERT inventory22 (description)
VALUES ('Yellow pencil')
GO

Jest to kwerenda ma wybierać wszystkie informacje z inventory22wtabela:

SELECT * FROM inventory22 ORDER BY part_id;
GO

W tym miejscu jest zestaw wyników (Uwaga entry-person wartość):

part_id description entry_person

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

100 Red pencil dbo

101 Blue pencil dbo

102 Green pencil dbo

103 Black pencil dbo

104 Yellow pencil dbo

(5 row(s) affected)

C.Korzystanie z użytkownika w połączeniu z EXECUTE

Poniższy przykład ilustruje zachowanie USER podczas wywołania wewnątrz personifikowanego sesja.

SELECT USER;
GO
EXECUTE AS USER = 'Mario';
GO
SELECT USER;
GO
REVERT;
GO
SELECT USER;
GO

Oto zestaw wyników.

DBO

Mario

DBO