3つのDB(DB1,DB2,DB3)のサーバからテーブルのデータをそれぞれ取得し、
それらを一つのテーブルへインポートしています。
カラムは3つとも同じ(ID、GroupName、CompanyCode)で、データの中身だけが違います。
既に作成しているインポート先(Master)にはデータが入っています。
3つのテーブルをそれぞれインポートするときに、IDは連番にしたいです。
今はテーブルごとにID:1~10になっているので
インポートするときにIDの最大数+IDにすれば連番になるのではないかと考えました。
ですがその方法がわからず困っています。
なにかアドバイスをいただけないでしょうか。
SQL
1BULK INSERT Master 2FROM 'D:\フォルダパス\MST_A.csv' 3WITH 4( 5 FIELDTERMINATOR = ',', 6 ROWTERMINATOR = '\n' 7); 8
追記
以前ご質問させていただいた際、オートナンバー型に変更すれば良いとのアドバイスをいただいたのですが、型変更なしで実行をしたいです。
インポートするDB2のIDを ”DB1の最大IDを加えたID”
インポートするDB3のIDを ”DB2の最大IDを加えたID”
とする方法はありますか?
例)
DB1 テーブル;data1
ID GroupName CompanyCode
1 A A
2 B B
3 C C
DB2 テーブル;data1
ID GroupName CompanyCode
1 D D
2 E E
3 F F
だとしたら
既にデータが入っているMasterにインポートすると
DB4 テーブル:Master
ID GroupName CompanyCode
1 AA AA
2 BB BB
3 CC CC 』が元々のMaster
4 A A
5 B B
6 C C 』追加でインポートしたdata1
7 D D
8 E E
9 F F 』追加でインポートしたdata2
というふうになってほしいです。
SQL
1SELECT A2.id + (SELECT MAX(id) FROM [dbMst].[dbo].data1)AS ForecastGroupID, A2.GroupName, A2.CompanyCode 2 FROM [dbMst].[dbo].Master A2
上記のコードを作成してみましたが、
”in、out、format のいずれかのオプションの有効なテーブル名を指定してください。”とログがでてしまいました。
回答3件
あなたの回答
tips
プレビュー