当所选列来自Sql参数时,是否可以使用INSERT INTO SELECT
:
@selectedColumns varchar(1000),
@testInput1 varchar(100),
@testInput2 varchar(100)
Insert into Report
Select @selectedColumns
from Test
where @testInput1 = @testInput2;
我收到错误:Column name or number of supplied values does not match table definition
,因为在生成存储过程时,这些值不会匹配。
@selectedColumns输入变量正在从.NET MVC控制器填充,其中的列以逗号分隔的字符串填充,如下所示:
"Column1, Column2, Column3"
因此,当您查看变量时它看起来像1列,但实际上是1到10之间的任何值(报表中的数量)。它们在报告表中都有匹配的列。
答案 0 :(得分:0)
您可以创建商店程序并像这样执行查询
create procedure insertdata(@selectedRows varchar(1000),
@testInput1 varchar(100),
@testInput2 varchar(100)
}
as
begin
Declare @query varchar(max)
set @query='Insert into Report
Select '+@selectedRows+
'from Test where' +'@testInput1+' = '+@testInput2
excute @query
end
答案 1 :(得分:0)
是。您可以使用用户定义的表类型来执行此操作。