あるテーブルから別のテーブル構造に異なるデータを移動する

sql sqlbulkcopy sql-server-2008

質問

私は、ユーザーがテーブル構造を作成してデータをアップロードする一般的なデータアップロードアプリケーションを作成しています。

私は一般的なデータテーブルを持っています。以下の構造である。

--------------------------------------
tableId | ColumName | rowNo | CellData 

今すぐユーザーはテンプレートを作成し、そのテンプレートのcsv形式でデータをアップロードします。

テンプレートの後にユーザーが作成されたとします。

----------------------------------------
colum1 | colum2  | colum3 | colum4

次のようにデータを挿入します

TemplateOne

colum1 | colum2  | colum3 | colum4
-----------------------------------
x1     |  x2     |  x3    |  x4   
A1     |  A2     |  A3    |  A4   
B1     |  B2     |  B3    |  B4   

このデータを以下のようにジェネリックデータテーブルに移動したいと思います。

   tableId  | ColumName | rowNo | CellData 
--------------------------------------
TemplateOne | colum1    |   1   | X1
TemplateOne | colum1    |   2   | A1
TemplateOne | colum1    |   3   | B1
TemplateOne | colum2    |   1   | X2
TemplateOne | colum2    |   2   | A2
TemplateOne | colum2    |   3   | B2
TemplateOne | colum3    |   1   | X3
TemplateOne | colum3    |   2   | A3
TemplateOne | colum3    |   3   | B3  
TemplateOne | colum4    |   1   | X4
TemplateOne | colum4    |   2   | A4
TemplateOne | colum4    |   3   | B4

私は同じのための動的SQLを開発しようとしています。これを行う簡単な方法があるかどうかを知りたいだけです。

はいの場合はお勧めします。

人気のある回答

私はINSERT INTO SELECTステートメントを使用してtable1からtable2データをコピーできると思いtable2

INSERT INTO table2 (col1,col2 ...)
SELECT col1,col2... FROM table1;

ドキュメントはここにあります:
http://www.w3schools.com/sql/sql_insert_into_select.asp


あなたのSQLは次のようになります:

INSERT INTO generic (tableId, ColumName,rowNo,CellData)
SELECT 'TemplateOne' AS tableId, 'colum1' AS ColumName, rowNo, colum1 AS CellData
FROM TemplateOne
UNION ALL
SELECT 'TemplateOne' AS tableId, 'colum2' AS ColumName, rowNo, colum2 AS CellData
FROM TemplateOne
UNION ALL
SELECT 'TemplateOne' AS tableId, 'colum3' AS ColumName, rowNo, colum3 AS CellData
FROM TemplateOne
UNION ALL
SELECT 'TemplateOne' AS tableId, 'colum4' AS ColumName, rowNo, colum4 AS CellData
FROM TemplateOne;

デモ: http ://sqlfiddle.com/#!2/ f3e84a/1

お役に立てれば。



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ