从临时表插入表

时间:2014-12-12 13:58:04

标签: sql sql-server sql-server-2008-r2 sql-insert

我有下表:

示例

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

现在我想按变量插入两个值,最后一个用#temp table。

#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值插入到表测试中。

1 个答案:

答案 0 :(得分:21)

您可以使用insert-select语句:

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