1

重複の可能性:
SQL Server: テーブルから列名を返すにはどうすればよいですか?

テーブルの列名を別のテーブルのフィールドに挿入する方法があるかどうか知りたかったのです。

古いテーブルの列名が新しいテーブルのパラメーターになっている新しいテーブルがあります。

すなわち。

old table
[id] [name] [name2] [name3]
  1    x      x       x

new table
[id] [name type]
 1    name
 2    name2
 3    name3    
4

3 に答える 3

1

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
于 2012-07-25T22:31:23.860 に答える
1

次のクエリは、指定されたテーブルの列を返します。

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 でも動作するはずです。

于 2012-07-25T22:19:52.507 に答える
1
INSERT INTO NewTable
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'OldTable'
于 2012-07-25T22:21:41.460 に答える