Udostępnij za pośrednictwem


Za pomocą funkcji systemu

Funkcje systemu Włącz dostęp do informacji z SQL Server tabele systemowe bez uzyskiwania dostępu do tabele systemowe bezpośrednio.

Nazwy niektórych Transact-SQL funkcje systemowe zaczynają się dwóch przy znaków @@.Chociaż w starszych wersjach SQL Server @@ funkcje są określane jako zmienne globalne, zmienne nie są i nie mają takie samo zachowanie jako zmienne.Funkcje @@ są funkcje systemowe i ich użycia składni następują reguły dla funkcji.

Każdy następujące pary funkcje systemowe baz danych, hosty, obiekty, logowania i użytkowników zwraca nazwę, gdy podany identyfikator (ID) i zwraca identyfikator, gdy nazwa:

  • DB_ID i DB_NAME

  • HOST_ID i HOST_NAME

  • OBJECT_ID i nazwa_obiektu

  • SUSER_ID i SUSER_NAME (lub SUSER_SID i SUSER_SNAME)

  • USER_ID i nazwa_użytkownika

Na przykład, aby uzyskać numer identyfikacyjny bazy danych, funkcja DB_ID zamiast wybierz z sysobjects tabela.

Poniższy przykład ilustruje sposób pobrać nazwy użytkownika bieżącego użytkownika, który jest zalogowany przy użyciu SQL Server uwierzytelniania:

SELECT SUSER_NAME();

Następujące funkcje są podobne, ale nie występują one w parach uzupełniające i podejmą więcej niż jeden parametr wejściowy:

  • COL_LENGTH

    Zwraca długość kolumna, ale nie długości wszystkie poszczególne ciągi przechowywane kolumna.Funkcja DŁUGOŚĆ_DANYCH ustalenie całkowitej liczby znaków w określonej wartości.

    Poniższy przykład zwraca długość kolumna i długość danych LastName kolumna w Employees tabela:

    SELECT COL_LENGTH('Employees', 'LastName') AS Col_Length, 
       DATALENGTH(LastName) AS DataLength
    FROM Employees
    WHERE EmployeeID > 6;
    
  • COL_NAME

    Zwraca nazwę kolumna.

  • INDEX_COL

    Zwraca nazwę kolumna indeksu.

Zaleca się używać funkcje systemowe informacji schematu widoków, lub procedury składowane w systemie uzyskać informacje o systemie bez bezpośrednio badanie tabele systemowe.Tabele systemowe można zmienić znacznie między wersjami SQL Server.