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".