column_definition (języka Transact-SQL)

Określa właściwości kolumna , która jest dodawana do tabela za pomocą ALTER TABLE.

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

Składnia

column_name [ type_schema_name. ] type_name
    [ 
                ( { precision [ , scale ] | max | 
            [ { CONTENT | DOCUMENT } ] xml_schema_collection } ) 
    ] 
    [ FILESTREAM ]
    [ 
        [ CONSTRAINT constraint_name ] DEFAULT constant_expression 
             [ WITH VALUES ] 
        | IDENTITY [ (seed , increment ) ] [ NOT FOR REPLICATION ] 
    ] 
    [ ROWGUIDCOL ] 
    [ COLLATE < collation_name > ] 
    [ <column_constraint> [ ...n ] ] 

Argumenty

  • column_name
    Jest to nazwa kolumna zmienione, dodane lub usunięte.column_namemoże zawierać od 1 do 128 znaków.Dla nowej kolumny column_name może być pominięty w przypadku łamy utworzone za pomocą timestamp typu danych.Jeśli nie column_name określonych dla timestamp Typ danych kolumna, nazwa sygnatury czasowej jest używana.

  • [ type_schema_name**.** ] type_name
    Jest to typ danych dla kolumna , która jest dodawana i schematu, do której należy.

    type_namemoże być:

    • A Microsoft SQL Server typu danych systemu.

    • Na podstawie typu danych alias SQL Server typu danych systemu.Alias typy danych muszą być tworzone przy użyciu typu utworzyć przed mogą być używane w definicji tabela .

    • A Microsoft .NET Framework typ zdefiniowany przez użytkownika i schematu, do której należy.A .NET Framework typ zdefiniowany przez użytkownika muszą być tworzone przy użyciu typu utworzyć, zanim będzie można używać w definicji tabela .

    Jeśli type_schema_name nie jest określony, Microsoft Aparat baz danych odniesienia type_name w następującej kolejności:

    • SQL Server Typu danych systemu.

    • Domyślny schemat bieżącego użytkownika w bieżącej bazie danych.

    • Dbo schematu w bieżącej bazie danych.

  • precision
    Jest dokładność określony typ danych.Aby uzyskać więcej informacji na temat precyzji prawidłowe wartości, zobacz precyzja, skala i długość.

  • scale
    Jest skala określony typ danych.Aby uzyskać więcej informacji na temat skali prawidłowe wartości, zobacz Precyzja, skala i długość (Transact-SQL).

  • MAX
    Stosuje się tylko do varchar, nvarchar, i varbinary typów danych.Są one używane do przechowywania 2 ^ 31 bajtów na znak i danych binarnych oraz 2 ^ 30 bajtów danych Unicode.

  • ZAWARTOŚĆ
    Określa, że każde wystąpienie xml Typ danych w column_name może obejmować wiele góry -poziom elementów.ZAWARTOŚĆ dotyczy wyłącznie xml danych wpisz i może być określony tylko wtedy, gdy xml_schema_collection określony jest również.Jeśli nie jest określony, zawartość jest zachowanie domyślne.

  • DOKUMENT
    Określa, że każde wystąpienie xml Typ danych w column_name może obejmować tylko jeden górny -poziom elementu.DOKUMENT dotyczy wyłącznie xmldanych wpisz i może być określony tylko wtedy, gdy xml_schema_collection określony jest również.

  • xml_schema_collection
    Dotyczy wyłącznie xml Typ danych do kojarzenia schematu XML kolekcja z typu.Przed wpisaniem xmlkolumna do schematu, schematu należy najpierw utworzyć w bazie danych za pomocą Utworzyć KOLEKCJI SCHEMATU XML.

  • FILESTREAM
    Opcjonalnie określa Magazyn FILESTREAM atrybut dla kolumna , która ma type_name z varbinary(max).

    Po określeniu FILESTREAM dla kolumna tabela musi także mieć kolumna z uniqueidentifier Typ danych, który ma atrybutROWGUIDCOL.W tej kolumna nie zezwalaj na wartooci null i musi mieć unikatowy albo klucz podstawowy jedno -kolumna ograniczenie.Wartość identyfikatora GUID dla kolumna muszą być dostarczone przez aplikację po wstawieniu danych lub przez ograniczenie DOMYOLNE, () NEWID funkcja.

    ROWGUIDCOL kolumna nie zostanie usunięty, a ograniczenia pokrewne nie można zmienić, gdy istnieje FILESTREAM kolumna zdefiniowanych dla tabela.ROWGUIDCOL kolumna usunięte tylko po przerwaniu FILESTREAM ostatniej kolumna .

    Podczas składowania FILESTREAM atrybut jest określony dla kolumna, wszystkie wartości w tej kolumna są przechowywane w danych FILESTREAM kontener w systemie plików.

    Na przykład, która pokazuje, jak użyć kolumna definicji, zobacz Wprowadzenie do magazynu FILESTREAM.

  • [ OGRANICZENIE constraint_name []
    Określa początek DOMYŚLNEJ definicji.Aby zachować zgodność ze starszymi wersjami programu SQL Server, nazwa ograniczenia mogą być przypisane do DOMYŚLNYCH.constraint_namenależy przestrzegać reguł dla identyfikatorów, z tym wyjątkiem, że nazwa nie może rozpoczynać się znakiem numeru (#).Jeśli constraint_name nie jest określony, nazwa wygenerowana przez system jest przypisana do definicji DOMYŚLNYCH.

  • DOMYŚLNE
    Jest słowem kluczowym, która określa wartość domyślną dla kolumna.Definicje domyślne można podać wartości dla nowej kolumna w istniejących wierszy danych.Definicje domyślne nie mogą być zastosowane do timestamp kolumny lub kolumn z tożsamości właściwość.Jeżeli określono wartość domyślną dla typ zdefiniowany przez użytkownika kolumna, typ, powinien obsługiwać niejawna konwersja z constant_expression do typ zdefiniowany przez użytkownika.

  • constant_expression
    To wartość literału, NULL lub systemu funkcja używane jako wartości domyślnej kolumna .Jeśli używane w połączeniu z kolumna zdefiniowane za .NET Framework typ zdefiniowany przez użytkownikaimplementacji typu musi obsługiwać niejawna konwersja z constant_expression do typ zdefiniowany przez użytkownika.

  • WARTOŚCI
    Określa, że wartość podana w DOMYŚLNEJ constant_expression jest przechowywany w nowej kolumna dodane do istniejących wierszy.Jeśli dodanej kolumna pozwala określić wartości null i z wartości, wartość domyślna jest przechowywany w nowej kolumna, dodane do istniejących wierszy.Jeżeli nie określono wartości z kolumn, których wartości null, wartości NULL są przechowywane w nowej kolumna w istniejących wierszy.Jeśli nowa kolumna nie zezwala na wartości null, wartość domyślna jest przechowywana w nowych wierszy, niezależnie od tego, czy określono wartości Z.

  • TOŻSAMOŚĆ
    Określa nową kolumna tożsamości kolumna.Aparat baz danych programu SQL Server Zawiera unikatowy, przyrostowych wartości dla kolumna.Podczas dodawania kolumny identyfikatora do istniejących tabel numery tożsamości są dodawane do istniejących wierszy tabela o wartości początkowej i wartości przyrostu. Kolejność, w którym wiersze są aktualizowane nie jest gwarantowane.Tożsamość numery są generowane dla nowych wierszy, które są dodawane.

    Kolumny identyfikacji są często używane w połączeniu z ograniczeń klucza podstawowego służyć jako identyfikator unikatowy wiersz tabela.Identyfikacja właściwość można przypisać do tinyint, smallint, int, bigint, decimal(p,0), lub numeric(p,0) kolumna.tabelamożna utworzyć tylko jedną kolumna .Słowo kluczowe domyślne i domyślne powiązania nie można używać z kolumna.Musi być określona albo zarówno początkowej i wartości przyrostu, lub żadna.Jeśli nie określono wartość domyślna to (1,1).Nie można modyfikować istniejącej tabela kolumna Aby dodać właściwośćtożsamości.

    Ostrzeżenie

    Dodawanie kolumna do opublikowanych tabela nie jest obsługiwana, może powodować w nonconvergence, gdy kolumna jest replikowany do subskrybenta.Wartości w kolumna tożsamości Wydawca zależą od kolejności, w jakiej fizycznie przechowywane są wiersze dla dotkniętych tabela .Wiersze mogą być przechowywane w inny sposób przez subskrybenta; w związku z tym wartość kolumna tożsamości mogą być różne dla samych wierszy...

    Aby wyłączyć tożsamości właściwość kolumna pozwalając wartości dodaje się jawnie, należy użyć USTAWIĆ IDENTITY_INSERT.

  • seed
    Wartość w pierwszym wierszu jest ładowany do tabela.

  • increment
    Jest wartością przyrostowe dodane do wartości tożsamości poprzedniego wiersza, który jest załadowany.

  • NIE DLA REPLIKACJI
    Można określić tożsamości właściwość.Tej klauzula jest określony dla właściwośćtożsamości, wartości są nie zwiększane w kolumnach tożsamości podczas replikacja agentów wykonywania operacji wstawiania.Aby uzyskać więcej informacji, zobacz Kontrolowanie ograniczenia, tożsamości i wyzwalaczy z nie dla replikacji.

  • ROWGUIDCOL
    Określa, że kolumna kolumnawiersza unikatowy identyfikator globalny.ROWGUIDCOL mogą być tylko przypisywane do uniqueidentifier kolumnai tylko jeden uniqueidentifier kolumna w tabela może być wyznaczony jako ROWGUIDCOL kolumna.ROWGUIDCOL nie można przypisać do kolumny typy danych zdefiniowane przez użytkownika.

    ROWGUIDCOL nie wymusza unikatowość wartości przechowywane w kolumna.Ponadto ROWGUIDCOL nie generuje automatycznie wartości dla nowych wierszy, które są wstawiane do tabela.Generowanie unikatowych wartości dla każdej kolumna, użyj NEWID funkcja w instrukcji INSERT lub określić NEWID funkcja jako domyślną dla kolumna.Aby uzyskać więcej informacji, zobacz NEWID (Transact-SQL) i INSERT (Transact-SQL).

  • SORTOWANIE< collation_name>
    Określa sortowanie kolumna.Jeśli nie określono kolumna przypisano domyślne sortowanie bazy danych.Nazwa sortowania może być nazwa sortowanie systemu Windows lub nazwasortowanie SQL. Listy i uzyskać więcej informacji, zobacz Nazwa sortowania systemu Windows (Transact-SQL) i Nazwa sortowania SQL Server (Transact-SQL).

    klauzula COLLATE może służyć do określania ustawień sortowania tylko z kolumn char, varchar, nchar, i nvarchar typów danych.

    Aby uzyskać więcej informacji o klauzulaCOLLATE, zobacz SORTOWANIE (Transact-SQL).

Uwagi

Jeśli dodana kolumna o uniqueidentifier Typ danych można zdefiniować domyślnie używa NEWID() funkcja do dostarczania wartości identyfikator unikatowy w nowej kolumna dla każdego istniejącego wiersza w tabela.

Aparat baz danych Nie wymusza kolejność określania DOMYŚLNEJ, tożsamość, ROWGUIDCOL lub ograniczenia kolumna w definicji kolumna .

Przykłady

Aby zapoznać się z przykładami, zobacz ALTER TABLE (Transact-SQL).