4

あるテーブルの列名をデータとして SQL Server の別のテーブルに挿入しようとしています。これは私が使用しているクエリです:

insert into TableB (Name)
select COLUMN_NAME
from information_schema.COLUMNS
where TABLE_NAME = 'TableA'

これはゼロ行を返します。TABLE_NAME を指定せずに試してみました。また、TABLE_SCHEMA を指定してみました。これらは両方とも結果をもたらしますが、私が探しているものではありません。

4

2 に答える 2

2

あなたが提供したSQLコードに問題はありません。

その他のトラブルシューティング:

1)照会する場合:

select COLUMN_NAME
from information_schema.COLUMNS
where TABLE_NAME = 'TableA'

結果は出ていますか?

2)この INSERT を試してみると、うまくいきますか?

INSERT INTO Table_1 (Name)
Select 'Name1'

3)これらの列を選択すると、リストに TABLE_NAME が表示されますか?

Select DISTINCT(TABLE_NAME) FROM INFORMATION_SCHEMA.columns

あなたのSQLコードは、MicrosoftのAdventureWorks-DBでうまく機能しました(Table_1列名を持つ空のテーブルです):

INSERT INTO dbo.Table_1 (Name)
Select COLUMN_NAME FROM INFORMATION_SCHEMA.columns
where TABLE_NAME = 'ProductInventory'

select * from table_1

出力:

ProductID
LocationID
Shelf
Bin
Quantity
rowguid
ModifiedDate
于 2013-07-30T17:04:30.657 に答える