SQL Server 2005 Express で、別のデータベースへのテーブルの移行するにあたり、
INSERT INTO データベースB.dbo.テーブルX
SELECT * FROM データベースA.dbo.テーブルX
とすればよいというご回答をいただいています。
で、
IDENTITYを設定しているテーブルがあるとちょっと工夫が必要です。
とのコメントをもいただきましたが、
この「工夫」が分かりません。
どんな方法なのでしょうか?
IDENTITYをはずす方法や、リレーションシップをはずす方法などが思い浮かぶのですが、テーブル構造が複雑で、わけがわからなくなります。
元のIDの値は維持しなくてもよいので、何かよい方法はありますでしょうか?
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
TABLE1 (ID,F1,F2,F3)でIDにIDENTITYが付いていると仮定しますと、
方法1:番号が変わってもよい
INSERT INTO DB2.dbo.TABLE1 (F1,F2,F3)
SELECT F1,F2,F3 FROM TABLE1
GO
方法2:番号もそのままもっていく
SET IDENTITY_INSERT TABLE1 ON
GO
INSERT INTO DB2.dbo.TABLE1 (ID,F1,F2,F3)
SELECT ID,F1,F2,F3 FROM TABLE1
GO
SET IDENTITY_INSERT TABLE1 OFF
GO
いずれにしてもポイントはSELECT * FROM TABLE1ではだめで、フィールド名を羅列する必要があるということです。
なお、IDENTITY_INSERTは一度に1つのテーブルしかONにできませんので、念のため。
ID列の番号が変わってもよい
ということは、どういうことを意味するのでしょうか?
リレーションシップが解けてしまうのでしょうか?
データベースとしての機能を外してID番号を外す以外には、
「番号をそのままもっていく」しかないのでしょう、か?
で、虫がよすぎるかもしれませんが、
リレーションシップなども考えずに(継承されて)、単純に「二つのデータベースを一つに合体する」という方法は、ないのでしょうか?
面倒がらずにやるしかないのでしょうけれど...。
この辺り、ご指導お願いします。
No.3
- 回答日時:
No.2
- 回答日時:
>元のIDの値は維持しなくてもよいので、何かよい方法はありますでしょうか?
と書かれていたので、「IDの番号が変わってもよいからINSERTを成功させる方法」を紹介したまでです。
リレーションがある場合は、マスターのINSERTはうまくいきますが、参照元の方はINSERTで外部キーエラーになります。
リレーションシップを維持したいならば、後者の方法しかないでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- MySQL 複数DBテーブルからのデータ取得 3 2022/05/17 15:02
- MySQL 【投稿情報用データベース posts】は必要ないと思います。 1 2022/06/02 21:25
- MySQL [1000地域 × 10カテゴリー = 1万件のテーブル]!グループ化? 1 2023/06/14 23:56
- その他(データベース) Notion@リレーション値の取得について 1 2023/06/28 10:27
- その他(データベース) IT用語について質問です。 以前ITパスポートの試験を受けた際にデータベースが何の集まりかについての 2 2022/12/10 12:29
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- JavaScript Typescript が必要な理由 1 2023/01/07 11:45
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
データベースを複数作ったほう...
-
Notion@リレーション値の取得...
-
2台のサーバー間でのテーブル...
-
Visuaal Studio Community 2022...
-
ACCESS アクセスで他のデータ...
-
Microsoft Access:クエリのフ...
-
MySQLでの、異なるバージョン間...
-
テーブル単位のエクスポート、...
-
SQLです!!教えてください。あ...
-
Accessでデータシートに同じデ...
-
SELECT 文の NULL列は?
-
Accessのテーブルデータを一気...
-
update文で改行を入れる
-
テーブル名をカラムとして取得...
-
バイキングのトレーの形
-
テーブルで一番古いレコードだ...
-
複雑なSQL文について
-
ROWNUMでUPDATEをしたいのです...
-
特定物と不代替物の違い
-
SQL、2つのテーブルで条件一致...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
他のデータベースとのテーブル結合
-
Notion@リレーション値の取得...
-
SQliteの日付検索について
-
QSL でのフォーム画面作成について
-
2台のサーバー間でのテーブル...
-
Visuaal Studio Community 2022...
-
Microsoft Access:クエリのフ...
-
Accessで2種類のデータベースを...
-
データベースを複数作ったほう...
-
ACCESS アクセスで他のデータ...
-
カラムが不定なデータベースの...
-
Oracleのsystem表領域について
-
テーブル単位のエクスポート、...
-
PHPとMySQLを使った掲示板の作り方
-
[1000地域 × 10カテゴリー = 1...
-
コマンドラインオプションにパ...
-
Access 外部MDBのリンクテーブ...
-
ACCESS(VBA)について
-
バッチファイルを使ったテーブ...
-
【SQL Server】ローカルにDB構築
おすすめ情報