Identyfikatory

Nazwa obiektu bazy danych jest zwany jego identyfikator.Everything in Microsoft SQL Server can have an identifier.Serwery, baz danych i obiektów bazy danych, takich jak tabele, widoki, kolumny, indeksy, wyzwalacze, procedury, ograniczenia i reguły, mogą mieć identyfikatory.Identyfikatory są wymagane w przypadku większości obiektów, ale są opcjonalne dla niektórych obiektów, takich jak ograniczenia.

Identyfikator obiektu jest tworzony, gdy obiekt jest zdefiniowany.Identyfikator jest następnie używana do się odwoływać do obiektu.Na przykład, poniższa instrukcja tworzy tabela o identyfikatorze TableXi dwie kolumny z identyfikatorami KeyCol i Description:

CREATE TABLE TableX
(KeyCol INT PRIMARY KEY, Description nvarchar(80))

Ta tabela ma także ograniczenie nienazwane.PRIMARY KEY Ograniczenie ma nie identyfikator.

Sortowanie identyfikator zależy od poziom, na którym jest zdefiniowana.Identyfikatory wystąpienie-poziom obiekty, takie jak logowania do bazy danych nazw są przypisywane sortowanie domyślne z wystąpienie.Identyfikatory obiektów w bazie danych, takich jak tabele, widoki i kolumna nazwy, są przypisywane sortowanie domyślne bazy danych.Na przykład dwie tabele, których nazwy różnią się tylko przypadek mogą być tworzone w bazie danych, która ma liter, ale nie można utworzyć w bazie danych jest rozróżniana wielkość liter sortowanie.

Identyfikatory klas

Istnieją dwie klasy identyfikatorów:

  • Regularne identyfikatory
    Zgodne z zasadami dla formatu identyfikatorów.Regularne identyfikatory nie są rozdzielane użyto w Transact-SQL instrukcji.

    SELECT *
    FROM TableX
    WHERE KeyCol = 124
    
  • Rozdzielany identyfikatory
    Są ujęte w podwójny cudzysłów (") lub nawiasów kwadratowych ([]).Identyfikatory zgodne z zasadami dla formatu identyfikatory nie może być rozdzielane.Na przykład:

    SELECT *
    FROM [TableX]         --Delimiter is optional.
    WHERE [KeyCol] = 124  --Delimiter is optional.
    

    Identyfikatory, które nie spełniają wszystkie reguły dla identyfikatory muszą być rozdzielane w Transact-SQL instrukcja.Na przykład:

    SELECT *
    FROM [My Table]      --Identifier contains a space and uses a reserved keyword.
    WHERE [order] = 10   --Identifier is a reserved keyword.
    

Zarówno regularnych i rozdzielanego identyfikatory muszą zawierać od 1 do 128 znaków.Dla lokalnych tabel tymczasowych identyfikator może mieć maksymalnie 116 znaków.

Zasady dotyczące standardowych identyfikatorów

Zasady dotyczące formatu standardowych identyfikatorów zależą od poziom zgodności bazy danych.Ten poziom zestaw przy użyciu ALTER DATABASE.Gdy poziom zgodności jest 100, obowiązują następujące reguły:

  1. Pierwszy znak musi być jedną z następujących czynności:

    • Litera, jak zdefiniowano w standardzie Unicode 3,2.Definicja Unicode litery obejmuje łacińskie od do z, od a do Z, a także znaki litery z innych języków.

    • Podkreślenie (_) na znak (@) lub znak liczby (#).

      Niektóre symbole na początku identyfikator mają specjalne znaczenie SQL Server.Regularne identyfikator, który rozpoczyna się od znaku zawsze oznacza zmienną lokalną lub parametr i nie można użyć jako nazwy typu obiektu.Oznacza identyfikator, który rozpoczyna się znakiem numeru tabela tymczasowa lub procedury.Identyfikator, który zaczyna podwójne znaki numeru (#) oznacza globalne tymczasowy obiekt.Chociaż można użyć znaku lub podwójne znaki znak numeru rozpocząć nazwy innych typów obiektów, nie zaleca tej praktyki.

      Niektóre Transact-SQL funkcje mają nazwy rozpoczynające na znaków @@.Aby uniknąć pomylenia z tych funkcji, nie należy używać nazwy zaczynające @@.

  2. Kolejne znaki mogą być następujące:

    • Literami zdefiniowanymi w standardzie Unicode 3,2.

    • Cyframi dziesiętnymi z alfabetu łacińskiego lub innych alfabetów narodowych.

    • Znak, znak dolara ($), znak lub podkreślenia.

  3. The identifier must not be a Transact-SQL reserved word.SQL Server reserves both the uppercase and lowercase versions of reserved words.

  4. Spacje lub znaki specjalne są niedozwolone.

  5. Dodatkowe znaki są niedozwolone.

Kiedy identyfikatory są używane w Transact-SQL instrukcji identyfikatorów, które nie spełniają reguły te muszą rozdzielone podwójne cudzysłowy lub nawiasy.

Ostrzeżenie

Nazwy zmiennych, funkcji i procedur przechowywanych muszą być zgodne z zasadami Transact-SQL identyfikatorów.