Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Microsoft Fabric'te
DepoMicrosoft Fabric'te SQL veritabanı
ALTER TABLE kullanılarak tabloya eklenen bir sütunun özelliklerini belirtir.
Transact-SQL söz dizimi kuralları
Syntax
column_name <data_type>
[ FILESTREAM ]
[ COLLATE collation_name ]
[ NULL | NOT NULL ]
[
[ CONSTRAINT constraint_name ] DEFAULT constant_expression [ WITH VALUES ]
| IDENTITY [ ( seed , increment ) ] [ NOT FOR REPLICATION ]
]
[ ROWGUIDCOL ]
[ SPARSE ]
[ ENCRYPTED WITH
( COLUMN_ENCRYPTION_KEY = key_name ,
ENCRYPTION_TYPE = { DETERMINISTIC | RANDOMIZED } ,
ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256'
) ]
[ MASKED WITH ( FUNCTION = ' mask_function ') ]
[ <column_constraint> [ ...n ] ]
<data type> ::=
[ type_schema_name . ] type_name
[ ( precision [ , scale ] | max |
[ { CONTENT | DOCUMENT } ] xml_schema_collection ) ]
<column_constraint> ::=
[ CONSTRAINT constraint_name ]
{ { PRIMARY KEY | UNIQUE }
[ CLUSTERED | NONCLUSTERED ]
[
WITH FILLFACTOR = fillfactor
| WITH ( < index_option > [ , ...n ] )
]
[ ON { partition_scheme_name ( partition_column_name )
| filegroup | "default" } ]
| [ FOREIGN KEY ]
REFERENCES [ schema_name . ] referenced_table_name [ ( ref_column ) ]
[ ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]
[ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]
[ NOT FOR REPLICATION ]
| CHECK [ NOT FOR REPLICATION ] ( logical_expression )
}
Arguments
column_name
Değiştirilecek, eklenecek veya bırakılacak sütunun adı. column_name 1 ile 128 karakter arasında olabilir. Zaman damgası veri türüyle oluşturulan yeni sütunlar için column_name atlanabilir. Zaman damgası veri türü sütunu için column_name belirtilmezse, zaman damgası adı kullanılır.
[ type_schema_name. ] type_name
Eklenen sütunun veri türü ve ait olduğu şema.
type_name olabilir:
Microsoft SQL Server sistem veri türü.
SQL Server sistem veri türünü temel alan diğer ad veri türü. Diğer ad veri türlerinin bir tablo tanımında kullanılabilmesi için önce kullanılarak
CREATE TYPEoluşturulması gerekir.Microsoft .NET Framework kullanıcı tanımlı türü ve ait olduğu şema. Tablo tanımında kullanılabilmesi için önce kullanılarak
CREATE TYPE.NET Framework kullanıcı tanımlı bir tür oluşturulmalıdır.
type_schema_name belirtilmezse, Microsoft Veritabanı Altyapısı aşağıdaki sırayla type_name başvurur:
SQL Server sistem veri türü.
Geçerli veritabanındaki geçerli kullanıcının varsayılan şeması.
Geçerli veritabanındaki dbo şeması.
precision
Belirtilen veri türü için duyarlık. Geçerli duyarlık değerleri hakkında daha fazla bilgi için bkz. Duyarlık, Ölçek ve Uzunluk.
scale
Belirtilen veri türü için ölçek. Geçerli ölçek değerleri hakkında daha fazla bilgi için bkz. duyarlık, ölçek ve uzunluk
max
Yalnızca varchar, nvarchar ve varbinary veri türleri için geçerlidir. Bu (max) veri türleri 2^31 bayt karakter ve ikili veri ve 2^30 bayt Unicode veri depolamak için kullanılır.
CONTENT
column_namexml veri türünün her örneğinin birden çok üst düzey öğeden oluşabileceğini belirtir.
CONTENT yalnızca xml veri türü için geçerlidir ve yalnızca xml_schema_collection de belirtilirse belirtilebilir. Bu belirtilmezse, CONTENT varsayılan davranıştır.
DOCUMENT
column_namexml veri türünün her örneğinin yalnızca bir üst düzey öğeden oluşabileceğini belirtir.
DOCUMENT yalnızca xml veri türü için geçerlidir ve yalnızca xml_schema_collection de belirtilirse belirtilebilir.
xml_schema_collection
için geçerlidir: SQL Server 2008 (10.0.x) ve sonraki sürümler.
Yalnızca xml şema koleksiyonunu türle ilişkilendirmek için xml veri türü için geçerlidir. Şemaya xml veri türü sütunu eklenmeden önce şemanın veritabanında CREATE XML SCHEMA COLLECTION kullanılarak oluşturulması gerekir.
FILESTREAM
İsteğe bağlı olarak, varbinary(max)type_name olan sütun için FILESTREAM depolama özniteliğini belirtir.
Bir sütun için FILESTREAM belirtildiğinde, tabloda ROWGUIDCOL özniteliğine sahip uniqueidentifier veri türünde bir sütun da bulunmalıdır. Bu sütun null değerlere izin vermemelidir ve BENZERSIZ veya BİRİnCİl ANAHTAR tek sütun kısıtlamasına sahip olmalıdır.
GUID Sütun değeri, veriler eklenirken uygulama tarafından veya DEFAULT kısıtlaması ile sağlanır.
ROWGUIDCOL sütunu bırakılamaz ve tablo için tanımlanmış bir FILESTREAM sütunu varken ilgili kısıtlamalar değiştirilemez. ROWGUIDCOL sütunu yalnızca son FILESTREAM sütunu bırakıldıktan sonra bırakılabilir.
Bir sütun için FILESTREAM depolama özniteliği belirtildiğinde, bu sütunun tüm değerleri dosya sistemindeki FILESTREAM veri kapsayıcısında depolanır.
Sütun tanımının nasıl kullanılacağını gösteren bir örnek için bkz. FILESTREAM.
HARMANLAMA collation_name
Sütunun harmanlamasını belirtir. Belirtilmezse, sütuna veritabanının varsayılan harmanlaması atanır. Harmanlama adı bir Windows harmanlama adı veya SQL harmanlama adı olabilir. Liste ve daha fazla bilgi için bkz.
COLLATE yan tümcesi yalnızca char, varchar, nchar ve nvarchar veri türlerinin sütunlarının harmanlamalarını belirtmek için kullanılabilir.
Yan tümcesi COLLATE hakkında daha fazla bilgi için bkz. COLLATE.
NULL | NOT NULL
Sütunda değerlere izin verilip verilmeyeceğini NULL belirler.
NULL tam olarak bir kısıtlama değildir, ancak aynı gibi NOT NULLbelirtilebilir.
[ ZORLAMA constraint_name ]
Değer DEFAULT tanımının başlangıcını belirtir. SQL Server'ın önceki sürümleriyle uyumluluğu korumak için bir kısıtlama adı öğesine DEFAULTatanabilir.
constraint_name , adın bir sayı işaretiyle (# ) başlayamayacağı dışında tanımlayıcıların kurallarına uyması gerekir.
constraint_name belirtilmezse, tanıma sistem tarafından oluşturulan bir ad atanırDEFAULT.
DEFAULT
Sütun için varsayılan değeri belirten bir anahtar sözcüktür.
DEFAULT tanımları, mevcut veri satırlarında yeni bir sütun için değer sağlamak için kullanılabilir.
DEFAULT tanımları zaman damgası sütunlarına veya özelliği IDENTITY olan sütunlara uygulanamaz. Kullanıcı tanımlı tür sütunu için varsayılan bir değer belirtilirse, türün constant_expression kullanıcı tanımlı türe örtük dönüştürmeyi desteklemesi gerekir.
constant_expression
Varsayılan sütun değeri olarak kullanılan değişmez değer, NULLveya sistem işlevidir. .NET Framework kullanıcı tanımlı türünde tanımlanmış bir sütunla kullanıldığında, türün uygulanması constant_expression kullanıcı tanımlı türe örtük dönüştürmeyi desteklemelidir.
DEĞERLERLE
Sütun ve DEFAULT kısıtlama eklerken, sütun NULLS'ye izin veriyorsa, WITH VALUES yeni sütunun değerini mevcut satırlar için verilen DEFAULT constant_expression değere ayarlar.
Eklenen sütun NULLS'ye izin vermiyorsa, var olan satırlar için sütunun değeri her zaman içinde DEFAULT constant expressionverilen değere ayarlanır.
SQL Server 2012'den (11.x) başlayarak, bu bir meta veri işlemi olabilir ekleme-not-null-columns-as-an-online-operation.
İlgili sütun da eklenmiyorsa bu kullanılırsa hiçbir etkisi olmaz.
verilen DEFAULT constant_expression değerin mevcut satırlara eklenen yeni bir sütunda depolandığını belirtir. Eklenen sütun null değerlere izin veriyorsa ve WITH VALUES belirtilirse, varsayılan değer var olan satırlara eklenen yeni sütunda depolanır. Null değere izin veren sütunlar için belirtilmezse WITH VALUES , NULL değeri yeni sütunda, var olan satırlarda depolanır. Yeni sütun null değerlerine izin vermiyorsa, WITH VALUES belirtilip belirtilmediğinden bağımsız olarak varsayılan değer yeni satırlarda depolanır.
IDENTITY
Yeni sütunun bir kimlik sütunu olduğunu belirtir. SQL Server Veritabanı Altyapısı, sütun için benzersiz, artımlı bir değer sağlar. Var olan tablolara tanımlayıcı sütunları eklediğinizde, kimlik numaraları tablonun mevcut satırlarına tohum ve artım değerleriyle eklenir. Satırların güncelleştirilme sırası garanti değildir. Eklenen tüm yeni satırlar için kimlik numaraları da oluşturulur.
Kimlik sütunları genellikle tablonun benzersiz satır tanımlayıcısı olarak görev yapmak için kısıtlamalarla PRIMARY KEY birlikte kullanılır.
IDENTITY özelliği bir tinyint, smallint, int, bigint, decimal(p,0) veya sayısal (p,0) sütununa atanabilir. Tablo başına yalnızca bir kimlik sütunu oluşturulabilir.
DEFAULT Anahtar sözcük ve bağlı varsayılanlar bir kimlik sütunuyla kullanılamaz. Hem tohum hem de artış belirtilmeli veya belirtilmemiş olmalıdır. Hiçbiri belirtilmezse, varsayılan değer olur (1,1).
Note
Özelliği eklemek için mevcut tablo sütununu IDENTITY değiştiremezsiniz.
Yayımlanan tabloya kimlik sütunu eklemek desteklenmez çünkü sütun Aboneye çoğaltıldığında uyumsuzluktan kaynaklanabilir. Publisher'daki kimlik sütunundaki değerler, etkilenen tablonun satırlarının fiziksel olarak depolanma sırasına bağlıdır. Satırlar Abonede farklı şekilde depolanabilir; bu nedenle, kimlik sütununun değeri aynı satırlar için farklı olabilir.
Değerlerin IDENTITY açıkça eklenmesine izin vererek bir sütunun özelliğini devre dışı bırakmak için SET IDENTITY_INSERT kullanın.
tohum Tabloya yüklenen ilk satır için kullanılan değer.
artım Yüklenen önceki satırın kimlik değerine eklenen artımlı değer.
ÇOĞALTMA IÇIN DEĞIL
için geçerlidir: SQL Server 2008 (10.0.x) ve sonraki sürümler.
özelliği için IDENTITY belirtilebilir. Özellik için IDENTITY bu yan tümce belirtilirse, çoğaltma aracıları ekleme işlemleri gerçekleştirdiğinde kimlik sütunlarında değerler artırılmaz.
ROWGUIDCOL
için geçerlidir: SQL Server 2008 (10.0.x) ve sonraki sürümler.
Sütunun genel olarak benzersiz bir satır tanımlayıcı sütunu olduğunu belirtir.
ROWGUIDCOL
bir benzersizleştirici sütununa atanabilir ve tablo başına yalnızca bir benzersiz belirleyici sütunu sütun olarak ROWGUIDCOL atanabilir.
ROWGUIDCOL kullanıcı tanımlı veri türlerinin sütunlarına atanamaz.
ROWGUIDCOL sütununda depolanan değerlerin benzersizliğini zorlamaz. Ayrıca, ROWGUIDCOL tabloya eklenen yeni satırlar için otomatik olarak değer oluşturmaz. Her sütun için benzersiz değerler oluşturmak için deyimlerdeki işlevini NEWID() kullanın INSERT veya işlevi sütun için varsayılan olarak belirtinNEWID(). Daha fazla bilgi için bkz. NEWID (Transact-SQL) ve INSERT (Transact-SQL).
SPARSE
Sütunun seyrek bir sütun olduğunu gösterir. Seyrek sütunların depolanması null değerler için iyileştirilmiştir. Seyrek sütunlar NOT NULL olarak belirlenemez. Seyrek sütunlar hakkında ek kısıtlamalar ve daha fazla bilgi için bkz. Seyrek Sütunları Kullanma.
<column_constraint>
Sütun kısıtlaması bağımsız değişkenlerinin tanımları için bkz. column_constraint (Transact-SQL).
ŞİFOLALI
Always Encrypted özelliğini kullanarak sütunları şifrelemeyi belirtir.
ENCRYPTED WITH Microsoft Fabric'te SQL veritabanında desteklenmemektedir.
COLUMN_ENCRYPTION_KEY = key_name
Sütun şifreleme anahtarını belirtir. Daha fazla bilgi için bkz. CREATE COLUMN ENCRYPTION KEY (Transact-SQL).
ENCRYPTION_TYPE = { DETERMINISTIK | RASTGELE }
Belirleyici şifreleme , belirli bir düz metin değeri için her zaman aynı şifrelenmiş değeri oluşturan bir yöntem kullanır. Belirlenimci şifrelemeyi kullanmak, eşitlik karşılaştırması, gruplandırma ve şifrelenmiş değerlere dayalı eşitlik birleşimleri kullanarak tabloları birleştirmeyi kullanarak arama yapılmasını sağlar, ancak yetkisiz kullanıcıların şifrelenmiş sütundaki desenleri inceleyerek şifrelenmiş değerler hakkındaki bilgileri tahmin etmesine de izin verebilir. İki tablonun belirleneci olarak şifrelenmiş sütunlarda birleştirilmesi, ancak her iki sütunun da aynı sütun şifreleme anahtarı kullanılarak şifrelenmesi durumunda mümkündür. Belirleyici şifreleme, karakter sütunları için ikili2 sıralama düzeniyle bir sütun harmanlaması kullanmalıdır.
Rastgele şifreleme verileri daha az tahmin edilebilir bir şekilde şifreleyen bir yöntem kullanır. Rastgele şifreleme daha güvenlidir, ancak SQL Server örneğiniz güvenli kuşatmalarla Always Encrypted'ı desteklemediği sürece şifrelenmiş sütunlardaki hesaplamaları ve dizinleri önler.
Always Encrypted kullanıyorsanız (güvenli kuşatmalar olmadan), sütunlar için parametrelerle veya gruplama parametreleriyle (örneğin, kamu kimlik numarası) aranacak belirleyici şifrelemeyi kullanın. Başka kayıtlarla gruplandırılmayan veya tabloları birleştirmek için kullanılmayan ve ilgilendiğiniz şifrelenmiş sütunu içeren satırı bulmak için başka sütunlar (işlem numarası gibi) kullandığınızdan aranmayan kredi kartı numarası gibi veriler için rastgele şifreleme kullanın.
Always Encrypted'ı güvenli kuşatmalarla kullanıyorsanız, rastgele şifreleme önerilen bir şifreleme türüdür.
Sütunlar uygun bir veri türünde olmalıdır.
ALGORITHM
için geçerlidir: SQL Server 2016 (13.x) ve üzeri, SQL Veritabanı.
'AEAD_AES_256_CBC_HMAC_SHA_256' olmalıdır.
Özellik kısıtlamaları dahil daha fazla bilgi için bkz . Always Encrypted (Veritabanı Altyapısı).
MASKED WITH EKLEME (FUNCTION = ' mask_function ')
için geçerlidir: SQL Server 2016 (13.x) ve üzeri, SQL Veritabanı.
Dinamik bir veri maskesi belirtir. mask_function, uygun parametrelerle maskeleme işlevinin adıdır. Aşağıdaki işlevler kullanılabilir:
default()email()partial()random()
İşlev parametreleri için bkz. Dinamik Veri Maskeleme.
Remarks
Benzersiz tanımlayıcı veri türüne sahip bir sütun eklenirse, tablodaki NEWID() mevcut her satır için yeni sütundaki benzersiz tanımlayıcı değerlerini sağlamak için işlevini kullanan bir varsayılan değerle tanımlanabilir. Daha fazla bilgi için bkz. NEWID (Transact-SQL).
Veritabanı Altyapısı, sütun tanımında , DEFAULT, IDENTITYveya sütun kısıtlamalarını belirtmek ROWGUIDCOLiçin bir sıra zorlamaz.
ALTER TABLE Sütunun eklenmesi veri satırı boyutunun 8.060 bayt'ı aşmasına neden oluyorsa deyimi başarısız olur.
Examples
Örnekler için bkz . ALTER TABLE (Transact-SQL).