ALTER TABLE Tootaja_rolli_omamineADD CONSTRAINT chk_tootaja_rolli_omamine_unikaalsusCHECK (NOT EXISTS(SELECT isik_id, tootaja_roll_koodFROM Tootaja_rolli_omamineWHERE Now() BETWEEN alguse_aeg AND lopu_aegOR (alguse_aeg<=Now() AND lopu_aeg IS NULL)GROUP BY isik_id, tootaja_roll_koodHAVING Count(*)>1));MS Accessis, erinevalt paljudest teistest andmebaasisüsteemidest, saab CHECK-kitsenduses kasutada alampäringut. SQL-standard ei luba CHECK-kitsendustes kasutada mittedeterministlikku funktsiooni. Selline funktsioon tagastab samade argumentidega väljakutsudes erinevatel hetkedel erineva tulemuse. Now() on mittedeterministlik funktsioon.
MS Access (aga ka näiteks PostgreSQL) lubavad CHECK-kitsendustes selliseid funktsioone kasutada.
Võrdluseks - PostgreSQLis saab küsimuses nimetatud piirangu jõustada täielikult. Selleks tuleb luua EXCLUDE kitsendus. EXCLUDE kitsendus on unikaalsuse kitsenduse edasiarendus, mille puhul saab väärtuste unikaalsuse e kordumatuse kontrollimiseks kasutada ka mõnda muud operaatorit kui võrdsuse kontrolli operaator (=), mida kasutab UNIQUE kitsendus. Vaadake täpsemat näidet slaidikomplektist. Otsige sealt fraasi "Kattuvate perioodide vältimine".