
お世話になります。
レプリケーションしているテーブルに対して、列(フィールド)の追加や
フィールドタイプを変更しようとすると、レプリケーション絡みのエラー
が発生します。
テーブル 'xxxテーブル'
- テーブルを修正できません。
ODBC エラー : [Microsoft][ODBC SQL Server Driver][SQL Server]レプリケー
ションで使用されているので、テーブル 'dbo.xxxテーブル' を 削除 できません。
その都度、当該テーブルを使用しているパブリケーションをいったん削除し、
列の追加やフィールドタイプの変更後、再度パブリケーションを作成して
いる次第です。
パブリケーションを削除せず列を追加したり、フィールドタイプを変更する方法
はございますでしょうか。ご教授願います。
No.3ベストアンサー
- 回答日時:
1) EnterpriseManager - レプリケーション - パブリケーションから対象のパブリケーションのプロパティを開く
「大部分は変更できません」というような内容のメッセージが出てもOKで先に進む
2) 「フィルタ列」で「列をテーブルに追加」をクリック
3) 「レプリケートされたテーブルへの列の追加」画面で列名を指定
列定義の中身はクリアして、intやvarchar(10)などデータ型のみ指定(NOT NULLは指定しない)
それで確定すれば出来上がりです。
(テスト環境かなにかで試してみてください)
ご回答ありがとうございました。
早速テスト環境にて実施してみたところ、うまく列を追加する
ことができました!ありがとうございます!
もう一つの質問で「レプリケーションしているテーブルに対して
フィールドタイプを変更する方法」の方も教えて頂ければ幸いです。
パブリケーションのプロパティからでは変更出来なさそうでした。。
そもそも、レプリケーションしているテーブルのフィールドタイプは
変更出来ないんですかね?
以上、宜しくお願い致します。
No.4
- 回答日時:
うーん、2000ではデータ型変更はできなさそうですね。
ADDとDROPを組み合わせてカラムを作りなおすしかなさそうですが、それならパブリケーションを作りなおした方が楽ですよね。
ご回答ありがとうございました。
そもそもレプリケーションしているテーブルの既存のフィールド
タイプを変更するということ自体がめったに無いことですよね。。
後になって変更する必要がある = テーブル仕様が悪かった
ということになるかと思いますので。
色々と教えて頂きありがとうございました。
助かりました。
No.2
- 回答日時:
2000だと以下の記載があります。
記載された方法で行なえば可能なのではないでしょうか。
http://technet.microsoft.com/ja-jp/library/aa237 …
> パブリッシュされたテーブルへのスキーマの変更は、
> 必ず、SQL Server Enterprise Manager のレプリケーション
パブリケーション プロパティ ダイアログ ボックス、
>またはレプリケーション ストアド プロシージャを使用して行います。
2005だとAlter文でOKなんですけどね。
http://msdn.microsoft.com/ja-jp/library/ms151870 …
GUIで変更すると以下のような流れで変更するので「元テーブルの削除」でエラーになります。
・ワークテーブル作成
・ワークに元テーブルからデータをインサート
・元テーブル削除
・ワークテーブルを元テーブルの名前にRename
・PK再作成
早速のご回答ありがとうございます。
URLのページを確認致しましたが、何分初心者なものでして内容を
理解することができませんでした。。
よかったら具体的に操作方法を教えて頂けると助かります。
例えば・・・
契約テーブルを特定の名義だけフィルタし、トランザクション
(プッシュ)にてレプリケーションを行っている環境で、この契約
テーブルに列を挿入したい。
このような場合、どのようにすればパブリケーションを削除しないで
列を挿入することができるのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SI Object Browserのテーブルス...
-
コンボボックスで入力したもの...
-
ボタンをクリックした回数をカ...
-
エクセルでテーブルの最終行が...
-
ユニオンクエリの結果をテーブ...
-
#ワークテーブルにinsert時 変...
-
「マスタ」と「テーブル」の違...
-
accessで移動平均する方法
-
ACCESS2000のテーブル構造
-
請求と入金のテーブルの作成の...
-
VBAの実行時エラー'2522'について
-
SQLで○○の値以外を持っているレ...
-
オラクルではできるのにSQLSERV...
-
重複するキーから一番古い年月...
-
ACCESSのODBCリンクテーブルに...
-
ACCESS2007 フォーム 「バリア...
-
主キーにインデックスは貼らな...
-
行方向のデータを横に並べる
-
Access カレントレコードがあり...
-
Access VBA [リモートサーバー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SI Object Browserのテーブルス...
-
accessテーブル作成クエリを実...
-
クエリのキャンセルがいつにな...
-
ストアドをまたがるローカル一...
-
エクセルでテーブルの最終行が...
-
ユニオンクエリの結果をテーブ...
-
アクセスのテーブル作成クエリ...
-
UNIONなどで複数のテーブルから...
-
ADOでSeekメッソッドが使えませ...
-
あるテーブルのデータを追加、...
-
コンボボックスで入力したもの...
-
VIEWしか読み取れないユーザの...
-
列サイズ変更時、DB停止は必要?
-
テーブル作成クエリで新テーブ...
-
#ワークテーブルにinsert時 変...
-
エクセルの数式で添付写真のも...
-
excel テーブル
-
SQL Serverのテーブル追加を、A...
-
Accessでバージョン違いのファ...
-
エクセル
おすすめ情報