Share via


RULE (Transact-SQL) CREATE

Bir kural olarak adlandırılan bir nesne oluşturur.Bir kural, bir sütun veya bir diğer ad ad veri türü, bağlı, o sütuna eklenebilecek kabul edilebilir değerler belirtir.

Important noteImportant Note:

This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Denetim kısıtlamalarını yerine kullanmanız önerilir.Denetim kısıtlamalarını tablo, CREATE veya ALTER tablo CHECK anahtar kullanılarak oluşturulur.Daha fazla bilgi için bkz:CHECK kısıtlamaları.

Bir sütun veya diğer ad ad veri türüne bağlı olarak tek bir kural olabilir.Ancak, bir sütun hem bir kural ve ilişkilendirilmiş bir veya daha fazla denetim kısıtlamaları olabilir.True olduğunda, tüm kısıtlamalar değerlendirilir.

Topic link iconTransact-SQL sözdizimi kuralları

CREATE RULE [ schema_name . ] rule_name 
AS condition_expression
[ ; ]

Bağımsız değişkenler

  • schema_name
    Kural ait olduğu şema adıdır.

  • rule_name
    Yeni kuralın adıdır.Kural adı kurallarına uymanız gerekir tanımlayıcılar.Kural sahibi adı seçime bağlıdır.

  • condition_expression
    Koşul veya koşullar kuralı tanımlamak için iş.Bir kural, herhangi bir ifade bir WHERE yan tümcesini geçerli olabilir ve yüklemler (örneğin, IN, LIKE, BETWEEN) aritmetik işleçler ve ilişkisel işleçler gibi öğeleri içerebilir.Bir kural, sütunları veya diğer veritabanı nesnelerini başvuramaz.Veritabanı nesnelerini başvuran yerleşik işlevler eklenebilir.Kullanıcı tanımlı işlevler kullanılamaz.

    condition_expression bir değişken içerir.The at işaretini ()@) Her bir yerel değişken önce gelir.ifade, UPDATE veya INSERT ifade ile girilen değer gösterir.Herhangi bir ad veya simge kural oluştururken değerini göstermek için kullanılır, ancak ilk karakter olması at işaretini ()@).

    Not

    Kurallar diğer ad ad veri türlerini kullanan ifadeler oluşturmaktan kaçının.Kuralları diğer ad ad veri türleri, sütunları veya diğer ad ad veri türleri için kurallar bağlama sonra kullanan ifadeler oluşturulabilir ancak başvurulan derlemeye ifadeler başarısız.

Remarks

CREATE RULE diğer birleştirilemez Transact-SQL tek bir toplu iş deyimlerinde. Kuralları veritabanında zaten varolan verilere uygulanmaz saat kurallar oluşturulur ve kurallar sistem veri türlerine bağlı.Daha fazla bilgi için bkz:Veri türleri (Veritabanı Altyapısı).

Bir kural, yalnızca geçerli veritabanında oluşturulabilir.Bir kural oluşturduktan sonra yürütmek sp_bindrule kurala bağlamak için bir sütun veya diğer ad ad veri türü.Bir kural ile uyumlu sütun veri türü.Örneğin, "@ değeri BIR % LıKE" sayısal bir sütun için bir kural olarak kullanılamaz.Bir kural için bağlanamaz bir text, ntext, image, varchar(max), nvarchar(max), varbinary(max), xmlCLR kullanıcı tanımlı türü, veya timestamp sütun. hesaplanan sütun için BIR kural bağlanamaz.

Karakter ve Tarih sabitleri tek tırnak işareti (') içine alýn ve ikili sabitler ile 0 x koyun.Kuralın, bağlı olduğu bir sütun ile uyumlu değilse, SQL Server Database Engine bir değer eklendiğinde, ancak kural bağlı değil, bir hata iletisi döndürür.

diğer ad ad veri türüne bağlı olarak BIR kural, yalnızca bir değerine eklemek veya diğer ad ad veri türündeki bir veritabanı sütun güncelleştirmeye çalıştığınızda etkinleştirildi.Kuralları değişkenleri sınamak için bir değer bağlı olduğu bir kural tarafından reddedilen bir diğer ad veri türü değişkeni atamayın bir sütun aynı veri türü.

Bir kural hakkında bir rapor almak için kullanın. sp_help.Bir kuralın metni görüntülemek için , yürütmek sp_helptext rule name parametresi olarak ile.Bir kuralı yeniden adlandırmak için kullanın. sp_rename.

Bir kural aynı adla yeni bir tane oluşturulur ve ilişkisiz kullanarak kural olması için önce DROP RULE kullanarak kesilmesine sp_unbindrule kesilmeden önce.Kural bağlantı kesme için bir sütun, kullanma sp_unbindrule.

Önceki unbinding olmadan yeni bir kural için bir sütun veya veri türü bağlayabilirsiniz; yeni kural önceki geçersiz kılar.Kurallar için sütunlar her zaman bağlı diğer ad ad veri türlerine bağlı kuralların daha önceliklidir.Bir kural için bir sütunu bağlama, zaten bu sütun diğer ad ad adı veri türüne bağlı olarak bir kuralı değiştirir.Ancak, bir kural için bir veri bağlama türü, diğer ad ad veri türünde bir sütuna bağlı olan bir kural yerini almaz.Kuralları, sütunları ve diğer ad ad veri türleri, kuralları zaten bağlı, aşağıdaki tabloda geçerli önceliği gösterir.

Yeni kural bağlı

Eski kuralı bağlı

diğer ad ad veri türü

Eski kuralı bağlı

Sütun

diğer ad ad veri türü

Eski kuralı değiştirildi

Değişiklik yok

Sütun

Eski kuralı değiştirildi

Eski kuralı değiştirildi

Bir sütun hem varsayılan hem de ilişkili bir kural varsa, varsayılan kuralla tanımlanan etki alanı içindeki kalan gerekir.Bir kuralla çakışan varsayılan hiçbir zaman eklenir.SQL Server veritabanı altyapısı, bu tür bir varsayılan eklemek için her çalıştığında hata iletisi oluşturur.

İzinler

CREATE RULE, en azından yürütmek için , bir kullanıcı geçerli veritabanında CREATE RULE iznine ve ALTER iznine kuralı oluşturulduğu şemada olması gerekir.

Örnekler

C.aralık ile kural oluşturma

Aşağıdaki örnekte, bu kural, bağlı olduğu sütun veya sütunları eklenen tamsayılar aralık sınırlayan bir kural oluşturur.

CREATE RULE range_rule
AS 
@range>= $1000 AND @range <$20000;

b.Bir kural içeren bir liste oluşturma

Aşağıdaki örnekte, yalnızca bu kural içinde listelenen için sütun veya sütunlar (Bu kuralın bağlı olduğu) için girilen fiili değerleri sınırlayan bir kural oluşturur.

CREATE RULE list_rule
AS 
@list IN ('1389', '0736', '0877');

c.Bir desen ile kural oluşturma

Aşağıdaki örnek, bir desen bir kısa çizgi () tarafından izlenen herhangi iki karakterin izlemek için bir kural oluşturur.-), herhangi bir sayıda karakter veya hiçbir karakter ve bir tamsayı ile bitiş 0 arasında 9.

CREATE RULE pattern_rule 
AS
@value LIKE '__-%[0-9]'