web-dev-qa-db-ja.com

「NOT FOR REPLICATION」オプションの主キー

最近プロジェクトを引き継ぎましたが、ほとんどのテーブルで主キーのプロパティが "NOT FOR REPLICATION "。

私はDBAではありませんが、ほとんどのデータベースでは、主キーのないレコードは破損していると見なされます。これらのレコードのほとんどの主キーは、どこかで外部キーとしてほぼ確実に使用されます。

これは、以前の開発者(会社で現在は機能していない)の側のエラーですか、それとも他のロジックが関係していますか?本番環境ではレプリケーションも使用していないため、実際には深刻な影響はありませんが、これらのディレクティブをすべて削除することで、他に気付いていない副作用があるのではないかと考えていました。

このトピックに関連する多くの検索用語について、多くの有用なヒットが見つかりませんでしたので、これは私が元に戻す必要がある愚かなエラーであるとかなり確信しています。

22
Steve Rukuts

NOT FOR REPLICATIONは、レコードがこのテーブルにレプリケートされるときに、レプリケーションエージェントを介してID列に挿入される値は、ソースシステムからの元の値を保持しますが、ローカルに追加されたレコードはID値をインクリメントします。

更新:古いリンクが壊れています

以下は、NOT FOR REPLICATIONが行う設定の詳細を説明するtable_constraintドキュメントへのリンクです。

テーブル制約

26
steoleary