Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Check Constraint - Subconsultas não são permitidas neste contexto


Atualmente, o SQL Server não suporta subconsultas para CHECK RESTRIÇÕES .

Como você descobriu, pode haver problema com restrições CHECK envolvendo UDFs ao tentar contornar a limitação de subconsulta.

As estratégias alternativas de implementação de restrições são procedimentos acionados e procedimentos incorporados . A primeira é preferida porque, em comum com as restrições declarativas, elas não podem ser contornadas.

A implementação de uma estratégia processual acionada que seja bem otimizada e lide com problemas de simultaneidade não é trivial, mas ainda é factível. Eu recomendo o livro Matemática Aplicada para Profissionais de Banco de Dados Por Lex de Haan, Toon Koppelaars , capítulo 11 (os exemplos de código são Oracle, mas podem ser facilmente portados para o SQL Server).