テーブルの列名を別のテーブルのフィールドに挿入する方法があるかどうか知りたかったのです。
古いテーブルの列名が新しいテーブルのパラメーターになっている新しいテーブルがあります。
すなわち。
old table
[id] [name] [name2] [name3]
1 x x x
new table
[id] [name type]
1 name
2 name2
3 name3
テーブルの列名を別のテーブルのフィールドに挿入する方法があるかどうか知りたかったのです。
古いテーブルの列名が新しいテーブルのパラメーターになっている新しいテーブルがあります。
すなわち。
old table
[id] [name] [name2] [name3]
1 x x x
new table
[id] [name type]
1 name
2 name2
3 name3
SELECT INTO
新しいテーブルまたは一時テーブルを作成できます。以下の例は一時テーブルです。
SELECT COLUMN_NAME
into #temp
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'yourSchema' AND
TABLE_NAME = 'yourTable'
select *
from #temp
drop table #temp
次のクエリは、指定されたテーブルの列を返します。
SELECT COL.COLUMN_NAME
FROM
information_schema.columns COL
WHERE
(COL.TABLE_SCHEMA = 'schema_name') AND
(CO.TABLE_NAME = 'table_name')
結果セットを使用して一時テーブルに挿入したり、必要に応じて使用したりできます。
注: SQL Server 2008 で実行しましたが、2005 でも動作するはずです。
INSERT INTO NewTable
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'OldTable'