Eu tenho algum T-SQL gerado automaticamente, que provavelmente é válido, mas realmente não entendo.
ALTER TABLE [dbo].[MyTable]
WITH CHECK
CHECK CONSTRAINT [My_FORIEGN_KEY];
Eu sei o que é uma restrição de chave estrangeira, mas qual é o CHECK CHECK
?
A página de documentação do MSDN sobre
ALTER TABLE
explica isso:ALTER TABLE
: modifique a estrutura da tabela(e algumas das ações/modificações possíveis são):
CHECK CONSTRAINT ..
: habilita a restriçãoNOCHECK CONSTRAINT ..
: desabilitar a restriçãoHá também etapas adicionais opcionais a serem executadas ao criar/habilitar/desabilitar uma restrição:
WITH CHECK
: verifique a restrição tambémWITH NOCHECK
: não verifique a restriçãoEm suas palavras:
Teste no dbfiddle :
Considere ler o artigo aqui: https://msdn.microsoft.com/en-us/library/ms190273.aspx
Nos diz:
Além disso, considere este tópico no StackOverflow: https://stackoverflow.com/questions/529941/with-check-add-constraint-followed-by-check-constraint-vs-add-constraint