SQL Server al momento non supporta le sottoquery per CHECK VINCOLI .
Come hai scoperto, possono esserci problemi con i vincoli CHECK che coinvolgono UDF quando si tenta di aggirare la limitazione delle sottoquery.
Le strategie alternative di attuazione dei vincoli sono procedurali attivate e procedurale integrata . I primi sono preferiti perché, come i vincoli dichiarativi, non possono essere aggirati.
L'implementazione di una strategia procedurale attivata che sia ben ottimizzata e gestisca i problemi di concorrenza non è banale ma è comunque fattibile. Consiglio vivamente il libro Matematica applicata per professionisti di database di Lex de Haan, Toon Koppelaars , capitolo 11 (gli esempi di codice sono Oracle ma possono essere facilmente trasferiti su SQL Server).