sql >> Base de Datos >  >> RDS >> Sqlserver

Verificar restricción:las subconsultas no están permitidas en este contexto

SQL Server actualmente no admite subconsultas para CHECK RESTRICCIONES .

Como ha descubierto, puede haber problemas con las restricciones CHECK que involucren UDF al intentar eludir la limitación de subconsulta.

Las estrategias alternativas de implementación de restricciones son procedurales desencadenadas y procedimiento incrustado . Se prefiere el primero porque, al igual que las restricciones declarativas, no se pueden eludir.

La implementación de una estrategia de procedimiento desencadenada que esté bien optimizada y maneje los problemas de concurrencia no es trivial, pero sí factible. Recomiendo encarecidamente el libro Matemáticas aplicadas para profesionales de bases de datos Por Lex de Haan, Toon Koppelaars , capítulo 11 (los ejemplos de código son de Oracle, pero se pueden trasladar fácilmente a SQL Server).