お世話になります。
レプリケーションしているテーブルに対して、列(フィールド)の追加や
フィールドタイプを変更しようとすると、レプリケーション絡みのエラー
が発生します。
テーブル '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で質問しましょう!
似たような質問が見つかりました
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- その他(Microsoft Office) エクセルでテーブルの最終行が自動追加されない 1 2023/01/04 15:09
- その他(データベース) IT用語について質問です。 以前ITパスポートの試験を受けた際にデータベースが何の集まりかについての 2 2022/12/10 12:29
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- Access(アクセス) AccessVBAで任意の複数リンクテーブルをAccessVBAを動かす際に削除したいと考えておりま 1 2022/11/17 15:45
- Access(アクセス) Access VBA を利用して、フォルダ内のファイルの名称を変更したい 1 2023/08/03 08:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
クエリのキャンセルがいつにな...
-
列サイズ変更時、DB停止は必要?
-
エクセルの数式で添付写真のも...
-
エクセルでテーブルの最終行が...
-
アクセスのテーブル作成クエリ...
-
accessテーブル作成クエリを実...
-
位置を指定してフィールドを追...
-
SI Object Browserのテーブルス...
-
「マスタ」と「テーブル」の違...
-
ACCESS2007 フォーム 「バリア...
-
主キーにインデックスは貼らな...
-
Access VBA Me.Requery レコー...
-
データの二重表示の原因
-
Oracleの排他制御について教え...
-
ACCESSのSQLで、NULLかNULLでな...
-
排他ロックしたレコードが、別...
-
数百万件レコードのdelete
-
SELECT時の行ロックの必要性に...
-
ACCESSにて全項目(レポート)...
-
accessのロック
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでテーブルの最終行が...
-
エクセルでCtrl+Tでテーブルの...
-
accessテーブル作成クエリを実...
-
クエリのキャンセルがいつにな...
-
ユニオンクエリの結果をテーブ...
-
コンボボックスで入力したもの...
-
SI Object Browserのテーブルス...
-
SQLスクリプトを自動生成する方法
-
あるテーブルのデータを追加、...
-
VIEWしか読み取れないユーザの...
-
UNIONなどで複数のテーブルから...
-
AccessVBAで降順にするテーブル...
-
テーブル作成クエリで新テーブ...
-
Access のリレーションシップで...
-
ADOでSeekメッソッドが使えませ...
-
アクセスのテーブル作成クエリ...
-
エクセルの数式で添付写真のも...
-
レプリケーションしているテー...
-
AccessでOracleのテーブルをリ...
-
ストアドをまたがるローカル一...
おすすめ情報