web-dev-qa-db-ja.com

一時テーブルからテーブルに挿入

次の表があります。

create table test
(
 col1 varchar(10),
 col2 varchar(20),
 col3 varchar(30)
);

次に、変数で2つの値を挿入し、最後に#tempテーブルで1つの値を挿入します。

#Temp

create table #temp
(
  col3 varchar(30)
);

#Temp:含む

col3
-----
A1
A2
A3

テストテーブルへの挿入:

Declare @col1 varchar(10) = 'A'
Declare @col1 varchar(20) = 'B'
Declare @sql varchar(max)

SET @SQL = N'insert into test values('+@col1+','+@col2+',........); 
EXEC(@SQL)
/* How to insert `@col3` from #temp to test table*/

期待される結果

col1   col2   col3
------------------
A      B      A1
A      B      A2
A      B      A3

:変数値は、#temp値がテーブルテストに挿入されるまで繰り返す必要があります。

13
MAK

Insert-selectステートメントを使用できます。

INSERT INTO test
SELECT @col1, @col2, col3
FROM   #temp
21
Mureinik