私は主キーとしてID列を持つテーブルを持っています。この時点でテーブルのデータは重要ではないので、すべて削除することができますが、intからbigintに列を変更し、可能な限り最大の範囲を与えるためにbigint.minvalueに再配置します値。 レプリケーションを再構築したり、サブスクライバを変更したりせずに、これを実行したいと思います。SQL SVR 2005のマージレプリケーションソースであるテーブルのPK列を変更する正しい手順は何ですか?
私は
alter table MyTable
alter column MyTableId bigint not null
を実行すると、私はエラーを取得:
Msg 5074, Level 16, State 1, Line 5
The object 'repl_identity_range_CEEB13F5_11D2_435C_BE5D_EBF91EBF8DE7' is dependent on column 'MyTableId'.
Msg 5074, Level 16, State 1, Line 5
The object 'PK_MyTable' is dependent on column 'MyTableId'.
Msg 4922, Level 16, State 9, Line 5
ALTER TABLE ALTER COLUMN MyTableId failed because one or more objects access this column.
に戻って、それを追加するためにsp_addmergearticleを使用する変更は、からそれを削除することはできませんように見えますsp_droparticleのリンクに従ってサブスクリプションが存在する場合は、公開してください。 ありがとうございます。 – Zack
記事をパブリケーションから削除して変更しました。それを元に戻しました。加入者はスナップショットから再初期化しなければならない。 – Zack
優れている、少数のサブスクライバとその小さなデータベースを願っ:) – u07ch