MSSQL: Két oszlop közül pontosan egy legyen kitöltve

Adatbázisokkal kapcsolatos cikkek / MSSQL (970 katt)

Felvetődött egy olyan probléma, hogy hogyan lehet azt ellenőrizni, hogy egy Microsoft SQL Serverben létrehozott tábla esetén két oszlop közül mindig pontosan egy legyen kitöltve.

Az egyik lehetséges megfogalmazás szerint:

- nem lehet mindkettő oszlop egyszerre kitöltve
- nem lehet mindkettő oszlop üres

Vagy átfogalmazva:

- ha az első oszlop ki van töltve, akkor a második üres
- ha a második oszlop ki van töltve, akkor pedig az első üres

Ennek a feladatnak az egyik lehetséges megoldása a következő:



A lényeg itt a create table utasításon belül megadott check constraint.


constraint test_ch1 check ((column1 is not null and column2 is null) or
(column1 is null and column2 is not null))


Előző oldal Kapitány