sp_bindrule (Transact-SQL)

Bir sütun veya bir diğer ad veri türü için bir kural bağlar.

Ö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 kullanmayın ve bu özelliği kullanmakta olan uygulamaları mümkün olduğunca erken bir zamanda değiştirin.Use Kontrol kısıtlamaları yerine.DENETLEME kısıtlamaları onay anahtar sözcüğünü kullanarak oluşturulur create table veya alter table ifadeleri.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

sp_bindrule [ @rulename = ] 'rule' , 
     [ @objname = ] 'object_name' 
     [ , [ @futureonly = ] 'futureonly_flag' ] 

Bağımsız değişkenler

  • [ @rulename=] 'rule'
    Kural Oluştur deyimile oluşturulan bir kural adıdır.ruleİş nvarchar(776), ile hiçbir varsayılan.

  • [ @objname=] 'object_name'
    tablo ve sütunveya kurala bağlanacak olduğu diğer ad veri türü değil.A rule cannot be bound to a text, ntext, image, varchar(max), nvarchar(max), varbinary(max), xml, CLR kullanıcı tanımlı türü, or timestamp sütun.Bir kural için hesaplanan bir sütunbağlanamaz.

    object_nameİş nvarchar(776)ile hiçbir varsayılan.object_name Bir tek parçalı adıdır bir diğer ad veri türü. çözümlenenİki veya üç bölümlü adı ise, tablo ve sütunilk çözümlenir; Bu çözümleme başarısız olursa, diğer ad veri türü olarak çözümlenir.Varsayılan olarak, varolan diğer ad veri türü sütunları devralır rule sürece, bir kural için doğrudan sütunbağlı.

    Not

    object_nameayraç içerebilir ve [] sınırlandırılmış tanımlayıcı karakter karakter.Daha fazla bilgi için, bkz. Sınırlandırılmış tanımlayıcıları (veritabanı altyapısı).

    Not

    diğer ad veri türlerini kullanan ifadeler üzerinde oluşturulan kurallar sütunları veya diğer ad veri türlerine bağlanabilir, ancak bunlar başvurulduğunda derlemek başarısız.diğer ad veri türleri üzerinde oluşturulan kurallar kullanmaktan kaçının.

  • [ @futureonly= ] 'futureonly_flag'
    Yalnızca kullanılan bağlama bir kural için bir diğer ad veri yazdığınızda.future_only_flagİş varchar(15) Varsayılan değer null.Bu parametre, küme futureonly bir diğer ad veri türü varolan sütunları yeni kural devralmasını önler.futureonly_flag null ' dır, geçerli olan kural yok veya diğer ad veri türü. varolan bir kuralı kullanarak tüm sütunları diğer ad veri türü için yeni kural bağlı

Dönüş Kodu Değerleri

0 (başarılı) veya 1 (hata)

Açıklamalar

(Denetim kısıtlamasını kullanarak tercih edilir) yeni bir kural bir sütun bağlayabilirsiniz veya bir diğer ad veri türü ile sp_bindrule varolan bir kuralı bağlarken olmadan.Eski kuralı geçersiz kılınır.Bir kural, bir ' % s'sütuna sütun varolan bir denetim kısıtlaması ile ilişkili ise, tüm kısıtlamalar değerlendirilir.Kural bağlanamıyor bir SQL Server veri türü.

INSERT deyim denenir değil bağlamasırasında zaman kural uygulanır.Bir sütun için bir karakter kuralı bağlayabilirsiniz numeric veri türü gibi bir ekleme işlemi geçerli olmasa.

diğer ad veri türü varolan sütunları devralır yeni kural sürece futureonly_flag olarak belirtilen futureonly.Yeni sütunlar ile diğer ad veri türü her zaman tanımlı kural devralır.Bir kurala bağlı bir diğer ad veri türü için bir sütun veri türünü yan tümce alter column alter table deyim değiştirir, ancak veri türüne bağlı kural sütunalınmadı.Kural özellikle sütun kullanarak bağlanmalıdır sp_bindrule.

Bir ' % s'sütun sütuniçin bir kural baðladýðýnýzda, ilgili bilgiler eklenir sys.columns tablo.Bir diğer ad veri türü için bir kural baðladýðýnýzda, ilgili bilgiler eklenir sys.types tablo.

İzinler

Kural, tablo sütunbağlamak için ' % s'tablo tabloüzerinde alter izninizin olması gerekir.diğer ad veri türü üzerinde Denetim iznine veya türü ait olduğu, bir diğer ad veri türü için bir kural bağlamak için gereken şema üzerinde alter iznine.

Örnekler

A.Bir kural bir sütunbağlama

Kural adlı varsayılarak today oluşturuldu Kural Oluştur deyimkullanarak geçerli veritabanında, aşağıdaki örnek kurala bağlar HireDate sütun Employee tablo.Bir satır eklendiğinde için Employee, veriler için HireDate sütun karşı denetlenir today kural.

USE master;
GO
EXEC sp_bindrule 'today', 'HumanResources.Employee.HireDate'

B.Bir diğer ad veri türü için bir kural bağlama

Adında bir kural varlığını kabul ederek rule_ssn ve bir diğer ad veri türü adlı ssn, aşağıdaki örnek bağlar rule_ssn için ssn.create table deyim, sütun türü ssn miras rule_ssn kural.Varolan sütun türü ssn de devralan rule_ssn kural, sürece futureonly için belirtilen futureonly_flag, veya ssn it. için doğrudan bağlı bir kural vardırSütunlar her zaman ilişkili kurallar veri türlerine bağlı olanlar önceliklidir.

USE master;
GO
EXEC sp_bindrule 'rule_ssn', 'ssn'

C.Futureonly_flag kullanma

Aşağıdaki örnek bağlar rule_ssn kuralı diğer ad veri türü için ssn.Çünkü futureonly belirtilen türdeki varolan sütun ssn etkilenir.

USE master;
GO
EXEC sp_bindrule rule_ssn, 'ssn', 'futureonly'

D.Sınırlandırılmış tanımlayıcıları kullanarak

Aşağıdaki örnek sınırlandırılmış tanımlayıcıları kullanımını gösterir object_name parametresi.

USE master;
GO
CREATE TABLE [t.2] (c1 int) 
-- Notice the period as part of the table name.
EXEC sp_bindrule rule1, '[t.2].c1' 
-- The object contains two periods; 
-- the first is part of the table name 
-- and the second distinguishes the table name from the column name.