В момента SQL Server не поддържа подзаявки за CHECK ОГРАНИЧЕНИЯ .
Както открихте, може да има проблем с ограниченията CHECK включващи UDF при опит за заобикаляне на ограничението на подзаявката.
Стратегиите за прилагане на алтернативни ограничения са задействани процедурни и вградена процедура . Първото е за предпочитане, тъй като, подобно на декларативните ограничения, те не могат да бъдат заобиколени.
Прилагането на задействана процедурна стратегия, която е добре оптимизирана и се справя с проблеми с паралелността, не е тривиално, но все пак е възможно. Силно препоръчвам книгата Приложна математика за професионалисти в бази данни от Lex de Haan, Toon Koppelaars , глава 11 (примерите за код са Oracle, но могат лесно да бъдат пренесени към SQL Server).