sp_bindrule (Transact-SQL)

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

Important noteImportant Note:

This feature will be removed in a future version of Microsoft SQL Server. Do not use this feature in new development work, and modify applications that currently use this feature as soon as possible.KullanımıCHECK kısıtlamaları yerine.Kısıtlamaları, CHECK anahtar sözcüğü kullanılarak oluşturulur CHECKCREATE tablo veya ALTER tablo deyimleri.

Topic link iconTransact-SQL sözdizimi kuralları

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

Bağımsız değişkenler

  • [ @rulename=] 'rule'
    Is the name of a rule created by the CREATE RULE statement.rule is nvarchar(776), with no default.

  • [ @objname=] 'object_name'
    Tablo ve sütun veya kural bağlanacak olan diğer ad ad veri türü belirtilir.İçin bir kural bağlanamaz birtext,ntext,image,varchar(max),nvarchar(max),varbinary(max),xml, CLR türü, kullanıcı tanımlı veyatimestampsütun.Hesaplanan bir sütun için bir kural bağlanamaz.

    object_nameisnvarchar(776)hiçbir varsayılan.Ifobject_namebir tek parça ad bir diğer ad veri türü. çözülmüşİki veya üç parçalı adı ise, ilk bir tablo ve sütun çözülene; bu başarısız olursa, bir diğer ad veri türü olarak giderilir.Varsayılan olarak, diğer ad ad veri türü varolan sütun devralır.rulesürece bir kuralı bağlı doğrudan sütun.

    Not

    object_name can contain the bracket [ and ] characters as delimited identifier characters.Daha fazla bilgi için bkz:Sınırlandırılmış tanımlayıcıları (Veritabanı Altyapısı).

    Not

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

  • [ @futureonly= ] 'futureonly_flag'
    Is used only when binding a rule to an alias data type.future_only_flag is varchar(15) with a default of NULL.Bu parametre olarak ayarlandığındafutureonly bir diğer ad veri türü varolan sütun yeni kural. devralmasını önler Iffutureonly_flagnull, yeni kuralın, geçerli olan kural veya diğer ad ad veri türü. Varolan kural kullanarak bir sütun diğer ad ad veri türünün bağlı

Dönüş Kodu Değerleri

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

Remarks

İçin yeni bir kural bağlayabilirsiniz bir sütun (CHECK kısıtlaması kullanarak tercih edilen olsa da) veya diğer ad ad veri türüylesp_bindrule olmadan unbinding bir varolan kuralın.Eski kuralı geçersiz kılınır.Bir kural için bağlı bir sütun varolan bir CHECK kısıtlaması ile tüm kısıtlamaları değerlendirilir.Kural bağlanamıyor birSQL Serververi türü.

INSERT deyim, bağlama sırasında değil denenir, kural uygulanır.Karakter kural bağlayabilirsiniz bir sütun,numericveri türü, ancak böyle bir INSERT işlemi geçerli değil.

diğer ad ad veri türü varolan sütun sürece yeni kural alırfutureonly_flagolarak belirtilenfutureonly.Yeni sütun diğer ad ad adı veri türüne sahip her zaman tanımlı kural devralır.ALTER tablo deyim ALTER sütun yan tümce bir kurala bağlı bir diğer ad veri türü için sütun veri türünü değiştirir, ancak veri türüne bağlı kural sütunun alınmadı.Kural gerekir özellikle ilişkili sütun kullanaraksp_bindrule.

Bir kural bir sütuna bağlamak için ilgili bilgileri eklenirsys.Columns tablo.Bir diğer ad veri türü için bir kural bağladığınızda, ilgili bilgileri eklenirsys.Types tablo.

İzinler

Bir tablo sütun kuralı bağlamak için tablo üzerinde ALTER iznine olmalıdır.diğer ad ad veri türüne izin CONTROL veya izin türü ait, bir kural diğer ad ad veri türüne bağlamak için gerekli olan şema üzerinde ALTER.

Örnekler

C.Bir kural için sütun bağlama

Kural adı varsayaraktodayoluşturulan CREATE RULE deyimini kullanarak geçerli veritabanında, aşağıdaki örnekte kurala bağlarHireDatesütunEmployeeTablo.Bir satır eklenirEmployee, verileriHireDatesütun karşı denetlenirtodaykural.

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ı kabulrule_ssnve bir diğer ad veri türü adıssnAşağıdaki örnek bağlar,rule_ssntossn.İçinde bir CREATE tablo deyim, sütun türüssnmirasrule_ssnkural.Varolan sütun türüssnde mirasrule_ssnkural, sürecefutureonly için belirtilen futureonly_flag, ya da ssnit. ile doğrudan ilişkili bir kural yokSütunlar her zaman ilişkili kurallar veri türlerine bağlı olanlar önceliklidir.

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

C.The futureonly_flag kullanma

Aşağıdaki örnekte bağlarrule_ssnkuralı diğer ad ad veri türüssn.Çünküfutureonlybelirtilen türdeki varolan sütunssnetkilenen.

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

D.Ayrılmış tanımlayıcı kullanılarak

Aşağıdaki örnek, sınırlı tanımlayıcıları kullanımını gösterirobject_nameparametre.

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.