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 notÖ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.

Konu bağlantısı simgesi 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';

Ayrıca bkz.

Başvuru

ALTER TABLE (Transact-SQL)

CREATE RULE (Transact-SQL)

Tablo (Transact-sql) oluştur

Varsayılan (Transact-sql) bırak

RULE (Transact-sql) bırak

Ifadeler (Transact-sql)

Insert (Transact-sql)

sp_bindefault (Transact-sql)

sp_help (Transact-sql)

sp_helptext (Transact-sql)

sp_rename (Transact-sql)

sp_unbindefault (Transact-sql)