Recentemente, assumi um projeto e descobri que na maioria das tabelas a chave primária tem a propriedade " NOT FOR REPLICATION
".
Não sou DBA, mas certamente na maioria dos bancos de dados, um registro sem chave primária seria considerado corrompido. A chave primária da maioria desses registros quase certamente seria usada como chave estrangeira em algum lugar.
Isso foi um erro por parte do desenvolvedor anterior (que não trabalha mais para a empresa) ou há alguma outra lógica envolvida? Nós nem usamos replicação no ambiente de produção, então isso não afeta nada sério de qualquer maneira, mas eu queria saber se existem outros efeitos colaterais de remover todas essas diretivas que eu não conheço.
Não encontrei muitos resultados úteis para vários termos de pesquisa relacionados a esse tópico, então tenho certeza de que esse é apenas um erro bobo que preciso reverter, então essa pergunta é realmente para aliviar minha paranóia.
NOT FOR REPLICATION indica que quando um registro é replicado para esta tabela, qualquer valor inserido na coluna de identidade por meio do agente de replicação mantém seu valor original do sistema de origem, mas quaisquer registros adicionados localmente ainda incrementam o valor de identidade.
ATUALIZAÇÃO: Link antigo quebrado
Aqui está o link para os documentos table_constraint que detalham qual configuração NOT FOR REPLICATION fará:
Restrição de Tabela