有没有办法将要插入表中的值捕获为一个变量作为逗号分隔值,并使用该变量执行insert into
语句。例如,创建一个测试表为
create table id_test (id int, name varchar(10))
声明一个变量,并将变量的值设置为要插入到表中的值,并以逗号分隔,如下所示:
declare @test as varchar(60) ;
set @test = '10,''john''';
现在使用@test
中的变量insert into
作为
insert into id_test (id,name) values(@test)
提出这个问题的原因是,我不想将所有变量从网页传递到存储过程。相反,我想从Web页面传递一个传递变量,该变量包含要插入到表中的逗号分隔值。
答案 0 :(得分:1)
使用动态查询可以实现此目的。在变量声明后的存储过程中
declare @test as varchar(60);
set @test = '10,''john''';
declare @sql AS VARCHAR(MAX) = 'insert into id_test (id, name) values('+@test+')'
--USE EXEC() to execute your insert command
EXEC(@sql)