从临时表插入表

MAK*_*MAK 14 sql sql-server sql-server-2008-r2 sql-insert

我有下表:

示例:

create table test
(
 col1 varchar(10),
 col2 varchar(20),
 col3 varchar(30)
);
Run Code Online (Sandbox Code Playgroud)

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

#Temp:

create table #temp
(
  col3 varchar(30)
);
Run Code Online (Sandbox Code Playgroud)

#Temp:包含

col3
-----
A1
A2
A3
Run Code Online (Sandbox Code Playgroud)

插入测试表:

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*/
Run Code Online (Sandbox Code Playgroud)

预期成果:

col1   col2   col3
------------------
A      B      A1
A      B      A2
A      B      A3
Run Code Online (Sandbox Code Playgroud)

注意:变量值必须重复,直到#temp值插入到表测试中.

Mur*_*nik 22

您可以使用insert-select语句:

INSERT INTO test
SELECT @col1, @col2, col3
FROM   #temp
Run Code Online (Sandbox Code Playgroud)

  • 只需在插入中指定所需的列:`INSERT INTO test(col1,col3)SELECT @ col1,col3 FROM#temp` (3认同)