What you are asking for is a constraint across 2 tables or a table-level constraint with a subquery that involves another table (and that is a limitation of SQL-Server table-level constraints). In SQL-92 standard, there is `ASSERTION` (a constraint across more than 1 table), which is actually what you would use if it was available. See the asnwers in this question: [Why don't DBMS's support ASSERTION][1] for details and for info about some products (MS-Access) that have such functionality with limitations. [Firebird documentation][2] says it allows subqueries in CHECK constraints. In SQL-Server, your only solution would be a trigger, I'm afraid. [1]: http://stackoverflow.com/questions/6368349/why-dont-dbmss-support-assertion [2]: http://www.firebirdsql.org/en/sql-conformance/