Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Verifica vincolo - Le sottoquery non sono consentite in questo contesto

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).