Klucz podstawowy z opcją „NIE DO REPLIKACJI”


21

Niedawno przejąłem projekt i odkryłem, że w większości tabel klucz podstawowy ma właściwość „ NOT FOR REPLICATION”.

Nie jestem DBA, ale z pewnością w większości baz danych rekord bez klucza podstawowego można uznać za uszkodzony. Klucz podstawowy większości tych rekordów prawie na pewno byłby gdzieś używany jako klucz obcy.

Czy był to błąd ze strony poprzedniego programisty (który już nie pracuje dla firmy), czy może jest to związane z inną logiką? Nawet nie używamy replikacji w środowisku produkcyjnym, więc to i tak nie wpływa na nic poważnego, ale zastanawiałem się, czy istnieją jakieś skutki uboczne usunięcia wszystkich tych dyrektyw, o których nie wiem.

Nie znalazłem wielu przydatnych trafień dla wielu wyszukiwanych haseł związanych z tym tematem, więc jestem całkiem pewien, że to tylko głupi błąd, który muszę cofnąć, więc to pytanie naprawdę ma na celu złagodzenie mojej paranoi.

Odpowiedzi:


24

NOT FOR REPLICATION wskazuje, że kiedy rekord jest replikowany do tej tabeli, każda wartość wstawiana do kolumny tożsamości za pośrednictwem agenta replikacji zachowuje oryginalną wartość z systemu źródłowego, ale wszelkie rekordy dodane lokalnie nadal zwiększają wartość tożsamości.

AKTUALIZACJA: Stary link zepsuty

Oto link do dokumentów table_constraint, które szczegółowo opisują, co zrobi ustawienie NOT FOR REPLICATION:

Ograniczenie tabeli


2
Link się zepsuł
Aleksandr Kravets

@AleksandrKravets pozdrawia, zaktualizowano
steoleary
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.