Chiave primaria con opzione "NON PER REPLICAZIONE"


21

Ho recentemente assunto un progetto e ho scoperto che nella maggior parte delle tabelle la chiave primaria ha la proprietà " NOT FOR REPLICATION".

Non sono un DBA, ma sicuramente nella maggior parte dei database, un record senza chiave primaria sarebbe considerato corrotto. La chiave primaria della maggior parte di questi record verrebbe quasi sicuramente usata come chiave esterna da qualche parte.

È stato un errore da parte dello sviluppatore precedente (che non lavora più per l'azienda) o c'è qualche altra logica in gioco? Non usiamo nemmeno la replica nell'ambiente di produzione, quindi questo non influisce in alcun modo su qualcosa di grave, ma mi chiedevo se ci fossero altri effetti collaterali della rimozione di tutte queste direttive di cui non sono a conoscenza.

Non ho trovato molti risultati utili per un certo numero di termini di ricerca relativi a questo argomento, quindi sono abbastanza certo che questo è solo un errore sciocco che ho bisogno di invertire, quindi questa domanda è davvero per placare la mia paranoia.

Risposte:


24

NOT FOR REPLICATION indica che quando un record viene replicato in questa tabella, qualsiasi valore che viene inserito nella colonna identità tramite l'agente di replica mantiene il suo valore originale dal sistema di origine, ma qualsiasi record aggiunto localmente incrementa comunque il valore dell'identità.

AGGIORNAMENTO: Vecchio link non funzionante

Ecco il link ai documenti table_constraint che descrivono in dettaglio quale impostazione NON FOR REPLICATION farà:

Vincolo della tabella


2
Link is marcio
Aleksandr Kravets,

@AleksandrKravets evviva, aggiornato
steoleary il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.