Esta pergunta e sua resposta explicam como as inserções em massa serão renderizadas FK
como não confiáveis, pois as inserções em massa não são completamente verificadas (somente PK
e UNIQUE
s) . Também sei que a desativação temporária de um FK
pode levar ao status não confiável.
Meu projeto atual usa um banco de dados bastante pequeno (< 3 GB) e a contagem típica de tabelas é inferior a 200 mil linhas. No entanto, a integridade é muito importante, então confio muito nas FK
restrições (a integridade é muito mais importante que a velocidade).
Pergunta: existe algum outro mecanismo (além de disable e BULK INSERT
) que possa produzir chaves estrangeiras não confiáveis?
Outra fonte é um bug
MERGE
que permite que restrições de chave estrangeira sejam ignoradas. Isso foi relatado por Paul White, fechado como Won't Fix, e foi ignorado desde então. É uma das principais razões pelas quais eu tenho sido vocal contra o usoMERGE
.Existem outros cenários possíveis também - eu não verifiquei completamente este sobre restrições de verificação para ver se isso também poderia afetar FKs, e outro que não li é este ...
Enquanto ela se concentrava no aspecto de desempenho, minha colega de trabalho Melissa Connors escreveu um ótimo post sobre como encontrar e corrigir chaves estrangeiras não confiáveis: