从临时表插入到表中

20

我有以下表:

示例:

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

现在我想通过变量插入两个值,最后一个值通过 #temp 表。

#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 值插入到 test 表中为止。

1个回答

43

您可以使用插入选择语句:

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

如果我想插入到test(col1,col3),而不是col2呢? - MAK
4
在插入时只需指定所需的列名:INSERT INTO test (col1, col3) SELECT @col1, col3 FROM #temp - Mureinik
1
很棒的答案,简单而有效。 - Dalbir Singh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接