マージ レプリケーションを使用して、Sql サーバー 2005 でデータベースを実行しています。常に値を持つ必要があるため、一部の FK 列を「非 null」に変更したいと考えています。ただし、SQLサーバーではそれができません。これは次のように述べています。
- テーブルを変更できません。マージ レプリケーションで使用される rowguid 列の既定の制約を削除することは無効です。内部レプリケーション手順の実行中にスキーマの変更に失敗しました。修正処置については、このエラー メッセージに付随する他のエラー メッセージを参照してください。トランザクションはトリガーで終了しました。バッチは中止されました。
FKとして機能している別の列に対してのみ、rowguid列の制約をまったく変更しようとはしていません。null 以外に設定したいその他の列は、その情報 (つまり、顧客、顧客名) がなければレコードが意味をなさないためです。
質問: レプリケーションをオフにしてから再度オンにせずに、列を「非ヌル」に更新する方法はありますか? これはこれを行うための最良の方法でもありますか?代わりに制約を使用する必要がありますか?