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 2016 (13.x) ve üzeri
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Azure Synapse Analytics
Analytics Platform Sistemi (PDW)
Microsoft Fabric SQL veritabanı
Tablo sütununa girilen varsayılan değeri belirtmek için SQL Server Management Studio'yu (SSMS) kullanabilirsiniz. Nesne Gezgini'ni kullanarak veya Transact-SQL'i yürüterek varsayılan olarak ayarlayabilirsiniz.
Sütuna varsayılan bir değer atamazsanız ve kullanıcı sütunu boş bırakırsa:
Null değerlere izin ver seçeneğini ayarlarsanız, sütuna
NULL
eklenir.Null değerlere izin verme seçeneğini ayarlamazsanız, sütun boş kalır, ancak kullanıcı veya uygulama sütun için bir değer sağlayana kadar satırı ekleyemez.
Veritabanı düzeyinde veri tutarlılığını sağlamak için çeşitli görevler için varsayılan kısıtlama kullanabilirsiniz:
- Bir "etkin" veya "etkinleştir" sütununun satır değerini, eklemeden sonra
1
olarak ayarlayın. - Tarih alanının satır değerini geçerli tarih olarak ayarlayın.
- Bir alanın satır değerini, örneğin
DB_NAME()
belirlenimici bir sistem işlevi olarak ayarlayın.
Sınırlama
Başlamadan önce aşağıdaki sınırlamalara ve kısıtlamalara dikkat edin:
Varsayılan Değer alanındaki girdiniz ilişkili bir varsayılanın (parantez olmadan gösterilir) yerini alırsa, varsayılanın bağlamasını kaldırıp yeni varsayılanınızla değiştirmeniz istenir.
Metin dizesi girmek için, değeri tek tırnak içine alın (
'
). Çift tırnak işareti ("
) kullanmayın, çünkü bunlar alıntı identifikatörler için ayrılmıştır.Sayısal bir varsayılan değer girmek için, etrafında tırnak işaretleri olmadan sayıyı girin.
Bir nesne/işlev girmek için, nesnenin/işlevin adını çevresinde tırnak işaretleri olmadan girin.
Azure Synapse Analytics'te varsayılan kısıtlama için yalnızca sabitler kullanılabilir. İfade varsayılan kısıtlamayla kullanılamaz.
İzinler
Bu makalede açıklanan eylemler tabloda ALTER
izin gerektirir.
Varsayılan bir değer belirtmek için SQL Server Management Studio'yu kullanma
SSMS'de Nesne Gezgini'ni kullanarak tablo sütunu için varsayılan bir değer belirtebilirsiniz. Bunu yapmak için şu adımları izleyin:
SSMS'de SQL Server örneğine bağlanın.
Nesne Gezgini, ölçeğini değiştirmek istediğiniz sütunları içeren tabloya sağ tıklayın ve Tasarımöğesini seçin.
Varsayılan değer belirtmek istediğiniz sütunu seçin.
Sütun Özellikleri sekmesinde, Varsayılan Değer veya Bağlama özelliğine yeni varsayılan değeri girin.
Sayısal bir varsayılan değer girmek için sayıyı girin. Bir nesne veya işlev için adını girin. Alfasayısal varsayılan için, değeri tek tırnak içinde girin.
Dosya menüsünde, <tablo adını>kaydet seçin.
Varsayılan belirtmek için Transact-SQL kullanma
T-SQL kullanarak bir sütun için varsayılan değer belirtmenin çeşitli yolları vardır. Aşağıdaki örneklerin her birinde, bu adımlarla yeni bir Transact-SQL sorgusu açabilirsiniz.
Nesne Gezginiveritabanı altyapısının bir örneğine bağlanın.
Standart çubuğunda Yeni Sorguseçin.
Örneği kopyalayıp sorgu penceresine yapıştırın ve Executeöğesini seçin.
Adlandırılmış kısıtlama kullanma
Veritabanı projeleriyle çalışırken, adlarla kısıtlamalar oluşturmanız önerilir. Aksi takdirde, varsayılan kısıtlamaya sistem tarafından oluşturulan bir ad verilir ve bu ad veritabanı nesnelerinizin oluşturulduğu her SQL sunucusu ortamında farklılık gösterir.
CREATE TABLE dbo.doc_exz (
column_a INT,
column_b INT CONSTRAINT DF_Doc_Exz_Column_B DEFAULT 50
);
ALTER TABLE komutunu kullanma
ALTER TABLE
ile var olan bir tabloya adlandırılmış kısıtlama ekleyebilirsiniz.
CREATE TABLE dbo.doc_exz (
column_a INT,
column_b INT
); -- Allows nulls.
GO
INSERT INTO dbo.doc_exz (column_a)
VALUES (7);
GO
ALTER TABLE dbo.doc_exz
ADD CONSTRAINT DF_Doc_Exz_Column_B DEFAULT 50 FOR column_b;
GO
CREATE TABLE ifadesini kullanın.
CREATE TABLE
ile varsayılan kısıtlamaları olan yeni bir tablo oluşturabilirsiniz.
CREATE TABLE dbo.doc_exz (
column_a INT,
column_b INT CONSTRAINT DF_Doc_Exz_Column_B DEFAULT 50
);
Oluşturma tarihi ayarla
Aşağıdaki örnek, sysdatetimeoffset()
sütununun satır değerini satırın oluşturulduğu tarihle doldurmak için dateinserted
sistem işlevini kullanır.
CREATE TABLE dbo.test (
id INT identity(1, 1) NOT NULL CONSTRAINT PK_test PRIMARY KEY
,date_inserted DATETIMEOFFSET(2) NOT NULL CONSTRAINT DF_test_date_inserted DEFAULT(sysdatetimeoffset())
);
Satır güncelleştirildiğinde varsayılan kısıtlama değişmez. Satır her değiştirildiğinde bir değeri güncellemek için, tetikleyici, zamansal tablo, hesaplanan sütunveya "rowversion" ikili dize kullanmayı göz önünde bulundurun. Satırları doğrudan eklemek yerine, iş mantığını, varsayılan değerleri ve diğer veri tutarlılığı kurallarını zorunlu kılan saklı yordamları yürüterek satır eklemeyi de göz önünde bulundurun.
Değişen satırları algılamak için Veri değişikliği yakalama (CDC), Değişiklik İzleme, zamansal tabloveya Kayıt Defteri tablosunugöz önünde bulundurun.