Share via


column_definition (Transact-SQL)

Bir tabloya kullanılarak eklenen sütun özelliklerini belirtir. TABLO DEĞİŞTİRME.

Topic link iconTransact-SQL sözdizimi kuralları

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 ] ] 

Bağımsız değişkenler

  • column_name
    Is the name of the column to be altered, added, or dropped.column_name can consist of 1 through 128 characters.Yeni sütun için column_name oluşturulan sütun atlanabilir bir timestamp Veri Türü. Yüklenmemişse column_name için belirtilen bir timestamp veri türü sütun, adı Timestamp kullanılır.

  • [ type_schema_name**.** ] type_name
    Veri türü için sütun, eklenir ve ait olduğu şema.

    type_name aşağıdaki gibi olabilir:

    • A Microsoft SQL Server system data type.

    • Bir diğer ad ad veri türü temel alan bir SQL Server Sistem veri türü. diğer ad ad veri türleri, CREATE TÜRÜ kullanarak bir tablo tanımında kullanılmadan önce oluşturulmalıdır.

    • A Microsoft .NET Framework user-defined type and the schema to which it belongs.C .NET Framework Kullanıcı tanımlı tür Tablo tanımı kullanılmadan önce CREATE TÜRÜ kullanılarak oluşturulmalıdır.

    If type_schema_name is not specified, the Microsoft Database Engine references type_name in the following order:

    • The SQL Server system data type.

    • Geçerli veritabanındaki geçerli kullanıcının varsayılan şema.

    • The dbo schema in the current database.

  • precision
    Belirtilen veri türü için duyarlık belirtilir.Geçerli duyarlık değerleri hakkında daha fazla bilgi için bkz: Duyarlık, Ölçek ve uzunluğu.

  • scale
    Belirtilen veri türünün ölçeği belirtilir.Geçerli ölçek değerleri hakkında daha fazla bilgi için bkz: Duyarlık, Ölçek ve Uzunluk (Transact-SQL).

  • en büyük
    Yalnızca geçerli varchar, nvarchar, ve varbinary veri türleri. Bu 2 depolamak için kullanılan ^ 31 bayt ve karakter ve ikili veri, 2 ^ 30 Unicode veri baytı.

  • İÇERİĞİ
    Çıktıda her örnek xml veri türü column_name birden çok üst düzey öğesi oluşturan. IÇERIK yalnızca geçerli xml verileri yazın ve yalnızca bu güvenlik açığından belirtilebilir xml_schema_collection Ayrıca belirtildi. Belirtilen, CONTENT bu değilse, varsayılan davranıştır.

  • BELGE
    Çıktıda her örnek xml veri türü column_name yalnızca bir üst düzey öğe oluşturan. DOCUMENT yalnızca geçerli xmlverileri yazın ve yalnızca bu güvenlik açığından belirtilebilir xml_schema_collection Ayrıca belirtildi.

  • xml_schema_collection
    Yalnızca geçerli xml bir XML şema koleksiyon türü ile ilişkilendirmek için veri türü. Yazmadan önce bir xmlsütun için bir şema, şema önce veritabanında kullanılarak oluşturulmalıdır xml ŞEMA KOLEKSİYONU OLUŞTUR..

  • filestream
    Optionally specifies the FILESTREAM storage öznitelik for sütun that has a type_name of varbinary(max).

    Bir sütun için FILESTREAM belirtildiğinde, tablonun sütunu da olmalıdır uniqueidentifier veri türü ROWGUIDCOL özniteliğine sahip. Bu sütun null değerlere izin vermek gerekir ve UNIQUE veya birincil anahtar tek sütunlu kısıtlaması olmalıdır.Sütun için GUID değeri, bir uygulama veri eklendiğinde veya NEWID () işlevini kullanan bir VARSAYıLAN kısıtlama olarak sağlanmalı.

    ROWGUIDCOL sütun bıraktı ve ilgili sınırlamalar, tablo için tanımlanmış bir FILESTREAM sütun çalışırken değiştirilemez.Yalnızca son FILESTREAM sütun kesilmeden sonra ROWGUIDCOL sütun kesilmesine.

    Bir sütun için FILESTREAM depolama özniteliğine belirtildiğinde, o sütun için tüm değerleri FILESTREAM veri kapsayıcı dosya sisteminde depolanır.

    Sütun tanımının nasıl gösteren bir örnek için bkz: FILESTREAM depolama ortamı ile çalışmaya başlama.

  • CONSTRAINTconstraint_name ]
    VARSAYıLAN bir tanım başlangıcını belirtir.To maintain compatibility with earlier versions of SQL Server, a constraint name can be assigned to a DEFAULT.constraint_name must follow the rules for identifiers, except that the name cannot start with a number sign (#).If constraint_name belirtilmemişse, sistem tarafından oluşturulan bir ad için VARSAYıLAN tanımını atanır.

  • VARSAYILAN
    Sütun için varsayılan değer olarak belirten bir anahtar sözcük olarak belirtilir.DEFAULT tanımları için yeni bir sütunda varolan veri satırlarının değerlerini sağlamak için kullanılır.DEFAULT tanımları uygulanamaz timestamp sütun veya sütunlarla bir kimlik özellik. kullanıcı tanımlı tür bir sütun için varsayılan bir değer belirtilmişse, türü örtülü bir dönüştürme desteklemelidir constant_expression kullanıcı tanımlı tür için.

  • constant_expression
    Hazır bilgi değeri, NULL veya varsayılan olarak kullanılan bir sistem işlev sütun değeri.Olması için tanımlanmış bir sütun ile birlikte kullanıldığında, bir .NET Framework Kullanıcı tanımlı bir tür örtülü bir dönüştürme türü uygulama desteklemelidir constant_expression kullanıcı tanımlı tür için.

  • DEĞERLERİ
    VARSAYıLAN olarak verilen değer belirtir constant_expression Yeni bir depolanan sütun için varolan bir satır eklenir. Eklenen sütun null değerler ve WITH VALUES belirtilen, varsayılan değer yeni depolanan sağlar sütun, varolan satırlara eklendi.WITH VALUES sütun, boş değerlere izin s belirtilmemişse, değer NULL yeni depolanır sütun varolan satırlarda.Yeni bir sütun boş değerlere izin vermez, varsayılan değer WITH VALUES olup olmadığı belirtilir ne olursa olsun, yeni satırlar depolanır.

  • KİMLİK
    Yeni bir sütun kimlik sütunu olduğunu belirtir.The SQL Server Database Engine provides a unique, incremental value for the sütun. Kimlik numaraları için varolan satırları varolan tablo s tanıtıcısı sütun eklediğinizde, eklenen tablo başlangıç ve artış değerleri.Satırları güncelleştirildiği sırada garanti edilmez.Kimlik numaraları, aynı zamanda eklenen yeni satırlar için oluşturulur.

    Kimlik sütunları, tablo için benzersiz bir satır tanımlayıcısı olarak hizmet verecek sık birincil anahtar kısıtlamaları ile birlikte kullanılır.KIMLIK özellik için atanan bir tinyint, smallint, int, bigint, decimal(p,0), veya numeric(p,0) sütun. Her tablo için yalnızca bir kimlik sütun oluşturulabilir.VARSAYıLAN anahtar sözcük ve ilişkili varsayılan değerler, kimlik sütun ile kullanılamaz.Hem temel hem artış belirtilmiş olmalı, veya hiçbiri.Hiçbiri belirtilmezse, varsayılan (1,1) ' dir.KIMLIK özellik eklemek için varolan bir tablo sütun değiştiremezsiniz.

    Not

    Kimlik sütun için yayımlanmış ekleme tablo sütun için abone çoğaltıldığında nonconvergence sonuçlanabilir desteklenmiyor.Kimliği değerleri sütun Yayımcı tarafında etkilenen bir tablo için satır fiziksel olarak depolanır siparişteki bağlıdır.Satırları farklı Abone tarafında depolanmış olabilir; bu nedenle, kimlik sütun için aynı satırlar için farklı olabilir

    Açıkça eklenecek değerleri izin vererek, sütun KIMLIK özellik devre dışı bırakmak için kullanın. küme identity_insert.

  • seed
    Yüklenen ilk satırı için kullanılan değer tablo.

  • increment
    Yüklenen önceki satırın Kimlik değerini eklenen artımlı bir değerdir.

  • ÇOĞALTMA İÇİN DEĞİL
    KIMLIK özellik için belirtilebilir.Bu yan tümce için KIMLIK özellik belirtilmemişse, çoğaltma aracıları, ekleme işlemi gerçekleştirdiğinizde değerleri kimlik sütunlarının artırılır değil.Daha fazla bilgi için bkz:Sınırlamaları, kimlik ve Tetikleyicileri NOT ile denetlemek IÇIN çoğaltma.

  • rowguidcol
    Sütun, satır genel benzersiz tanıtıcı sütun olduğunu belirtir.ROWGUIDCOL yalnızca atanabileceği bir uniqueidentifier sütun ve tek uniqueidentifier sütun tablo başına ROWGUIDCOL sütun olarak belirlenebilir. Kullanıcı tanımlı veri türleri sütunlarından ROWGUIDCOL atama yapılamaz.

    ROWGUIDCOL sütunda depolanan değerleri benzersizliğini zorlamaz.Ayrıca, ROWGUIDCOL otomatik olarak eklenir, yeni satırlar için değerleri oluşturmuyor tablo.Her sütun için benzersiz değerler üretmek için , INSERT deyimlerini NEWID işlevini kullanın ya da NEWID işlev sütun için varsayılan olarak belirtin.Daha fazla bilgi için bkz: NEWID (Transact-SQL) ve INSERT (Transact-SQL).

  • COLLATE < collation_name>
    Sütun harmanlama belirtir.Belirtilmezse, sütun veritabanının varsayılan harmanlama olarak atanır.Harmanlama adı, bir Windows harmanlama adı veya bir SQL Harmanlaması adı olabilir.Liste ve daha fazla bilgi için bkz: Windows harmanlaması adı (Transact-SQL) ve Name (Transact-SQL) SQL Server harmanlama.

    COLLATE yan tümcesini yalnızca bir sütun alfabe belirtmek için kullanılan char, varchar, nchar, ve nvarchar veri türleri.

    COLLATE yan tümcesini hakkında daha fazla bilgi için bkz: (Transact-SQL) HARMANLA.

Remarks

Sahip bir sütun eklediyseniz bir uniqueidentifier veri türü, onu tablosunda varolan her satır için yeni bir sütun içinde benzersiz bir tanıtıcı değerlerini sağlamak için NEWID() işlevini kullanan bir varsayılan ile tanımlanabilir.

The Database Engine does not enforce an order for specifying DEFAULT, IDENTITY, ROWGUIDCOL, or sütun constraints in a sütun definition.

Örnekler

Örnekler için bkz: ALTER tablo (Transact-SQL).