01.sql
Most is szükségük lesz egy teszt adatbázisra, tehát első lépésben ezt hozzuk létre.
02.sql
Létrehozunk egy táblát az adatbázisban két mezővel. Az egyik egy szöveges típusú mező (Txt), a másik pedig egy int típusú (Perc). Ez utóbbira hozunk létre egy olyan szabályt, amely nem engedi meg a 0-nál kisebb, és a 100-nál nagyobb értékek tárolását.
03.sql
A CREATE RULE utasítással létrehozzuk az új szabályt:
CREATE RULE RuleTest AS @Range>=0 AND @Range<=100
A RuleTest a szabály neve, amivel később hivatkozhatunk rá. Az AS kulcsszó után adhatjuk meg a feltételt, aminek a mezőbe írandó adatnak meg kell felelnie. Bármilyen feltételt megadhatunk, ami például a SELECT utasítás WHERE záradékában is érvényes. Az SQL Server nem ellenőrzi, hogy a feltételben szereplő kifejezések adattípusai egyformák-e, ezért erre oda kell figyelni, nehogy hibaüzenetet kapjunk az első ellenőrzés során. A feltételnek a @ karakterrel kell kezdődnie, ami egyben egy paramétert is jelöl. A paraméter neve tetszőleges lehet.
04.sql
Mivel a szabályok önálló objektumok, az elkészítésük után hozzá kell kapcsolni őket a táblák megfelelő oszlopaihoz, vagy egy általunk definiált adattípushoz. A hozzárendelést az sp_bindrule eljárással tudjuk megtenni:
EXEC sp_bindrule 'RuleTest', 'Table1.Perc'
Az eljárás első paramétere a szabály neve, a második pedig annak az objektumnak a neve, amihez rendeljük, jelen esetben a Table1 tábla Perc mezője. Harmadik paraméterként megadható a „FutureOnly” kapcsoló, amely csak a felhasználói adattípusoknál használható, és azt mondja meg, hogy a szabályt csak az ezután létrehozott adatokra fogja alkalmazni.
05.sql
Megpróbálunk felvenni 5 rekordot a Table1 táblába. Ezek közül kettő nem felel meg a megadott szabálynak, ezért hibaüzenetet kapunk.
06.sql
Megszüntetjük a szabály hozzárendelést a Table1 Perc mezőjéhez, majd a DROP RULE utasítással töröljük is a szabályt. A hozzárendelést az sp_unbindrule eljárással tudjuk megszüntetni:
EXEC sp_unbindrule 'Table1.Perc'
DROP RULE RuleTest;
Az sp_unbindrule eljárásnak csupán egy paramétert kell megadnunk, annak az objektumnak a nevét, amelyhez a továbbiakban nem szeretnénk alkalmazni a szabályt. A SROP RULE utasítás után meg kell adni a szabály nevét. Egy szabályt csak akkor lehet törölni, ha már egyetlen oszloppal vagy adattípussal sincs kapcsolatban.
Felveszünk újabb rekordokat, amelyek nem felelnek meg a szabálynak, de mivel már töröltük a szabályt, így nem kapunk hibaüzenetet, és a rekordok bekerülnek a táblába.
07.sql
Töröljük a teszt adatbázist.