Varsayılan (Transact-sql) oluştur
Varsayılan adı verilen bir nesne oluşturur. Bir sütun veya bir diğer ad veri türü için bağlandığında varsayılan nesne bağlı olduğu için (veya diğer ad veri türü Rezervasyonun tüm sütunlara), sütuna eklenecek değer belirtir ne zaman değer açıkça sağlanan bir ekleme sırasında.
Önemli |
---|
Bu özellik Microsoft SQL Server'ın ilerideki bir sürümünde kaldırılacaktır. Yeni geliştirme işlerinde bu özelliği kullanmaktan kaçının ve bu özelliği kullanmakta olan uygulamalarda değişiklik yapmayı planlayın.alter table veya create table default anahtar sözcük kullanılarak oluşturulan varsayılan tanımlarını kullanın. |
Transact-SQL Sözdizim Kuralları
Sözdizimi
CREATE DEFAULT [ schema_name . ] default_name
AS constant_expression [ ; ]
Bağımsız değişkenler
schema_name
Ait olduğu varsayılan şema addır.default_name
Varsayılan adıdır. Varsayılan adlar için kurallara uyması gerekir tanımlayıcıları. Varsayılan sahibi adını belirten isteğe bağlı.constant_expression
Olan bir ifade (o-can't dahil tüm sütunları ya da diğer veritabanı nesnelerinin adlarını) yalnızca sabit değerler içerir. Herhangi bir sabit, yerleşik bir işlev veya matematiksel ifadeyi, olanlar dışında diğer veri türlerini içeren kullanılabilir. Kullanıcı tanımlı işlevler kullanılamaz. Karakter ve Tarih sabitleri tek tırnak içine alın ('); para, tamsayı ve kayan nokta sabitler, tırnak gerektirmez. İkili veri 0 x gelmelidir ve parasal verileri bir dolar işareti ($) gelmelidir. Varsayılan değeri sütunun veri türüyle uyumlu olmalıdır.
Açıklamalar
Varsayılan bir ad, yalnızca geçerli veritabanında oluşturulabilir. Veritabanının içinde varsayılan adlar, şema tarafından benzersiz olması gerekir. Varsayılan oluşturulduğunda kullanmak sp_bindefault bir sütun veya bir diğer ad veri türü bağlamak için.
Varsayılan değer bağlı, sütun ile uyumlu değilse, SQL Servervarsayılan değer eklemeye çalışırken bir hata iletisi üretir. Örneğin, n/a için varsayılan olarak kullanılan bir sayısal sütun.
Varsayılan değer için bağlı sütun için çok uzun ise, değer kesilir.
create default deyimleri ile ilişkilendirilemez Transact-SQLtek bir toplu iş deyimlerinde.
Varsayılan, aynı adı taşıyan yeni bir tane oluşturmadan önce bırakılan gerekir ve varsayılan yürüterek ilişkisiz gerekir sp_unbindefault kesilmeden önce.
Bir sütun hem varsayılan hem de kendisiyle ilişkilendirilmiş bir kural varsa, varsayılan değer kuralı ihlal olmalıdır. Bir kural ile çakışan varsayılan asla eklenir, ve SQL Serverher zaman bunu varsayılan değer eklemek için girişimleri bir hata mesajı oluşturur.
Ne zaman bir sütunla ilişkili, varsayılan değer eklenen zaman:
Bir değer açıkça alınmamış.
Varsayılan değerler veya varsayılan anahtar kelimeler ekleme ile varsayılan değerleri eklemek için kullanılır.
YOKSA boş bir sütun oluştururken belirttiğiniz varsayılan için oluşturulmaz, bu sütuna bir giriş yapmak kullanıcı başarısız olduğunda hata iletisi oluşturulur. Aşağıdaki tabloda, varsayılan bir varlığı olarak null veya not null bir sütun tanımı arasındaki ilişkiyi göstermektedir. Tablodaki girişleri sonucu gösterir.
Sütun tanımı |
Hiçbir girdi, hiçbir varsayılan |
Girdi, varsayılan |
null varsayılan girin |
null varsayılan girin |
---|---|---|---|---|
NULL |
NULL |
varsayılan |
NULL |
NULL |
BOŞ DEĞİL |
Hata |
varsayılan |
hata |
hata |
Varsayılan yeniden adlandırmak için kullanın sp_rename. Varsayılan rapor için kullanmak sp_help.
İzinler
En azından create default yürütmek için bir kullanıcının geçerli veritabanında create default izni ve alter izni varsayılan oluşturulmaktadır şema olmalıdır.
Örnekler
A.Basit karakter varsayılan oluşturma
Aşağıdaki örnek olarak adlandırılan bir karakter varsayılan oluşturur unknown.
USE AdventureWorks2012;
GO
CREATE DEFAULT phonedflt AS 'unknown';
B.Varsayılan bağlama
Aşağıdaki örnek a oluşturulan varsayılan bağlar Yalnızca giriş için belirtilen varsayılan yürürlüğe Phonesütununda Contacttablosu. Herhangi bir giriş atlama null INSERT deyimi içinde açıkça belirten den farklı olduğunu unutmayın.
Çünkü bir varsayılan adı phonedfltyok, şu Transact-SQLdeyimi başarısız. Bu örnek için yalnızca örnektir.
USE AdventureWorks2012;
GO
sp_bindefault 'phonedflt', 'Person.PersonPhone.PhoneNumber';