|
|
Question : Subquery in Check constraint
|
|
SQL Server 7.0 is telling me that I can't do this:
CONSTRAINT my_check CHECK (ColumnName IN (SELECT SomeValue FROM ReferenceTable))
It tells me that subqueries are not allowed. So then, how do I enforce this business rule at the database level?
|
Answer : Subquery in Check constraint
|
|
In that case, you MUST use triggers to enforce these rules:
CREATE TRIGGER ON YourTable FOR INSERT, UPDATE IF UPDATE(ColumnName) IF EXISTS ( SELECT ColumnName FROM inserted LEFT JOIN SomeTable ON SomeTable.SomeField = inserted.ColumnName WHERE AND SomeTable.SomeField IS NULL ) BEGIN ROLLBACK TRAN -- eventually RAISERROR ... END
Cheers |
|
|
|