从单个变量SQL存储过程插入表值

时间:2016-07-20 10:02:25

标签: sql sql-server tsql

有没有办法将要插入表中的值捕获为一个变量作为逗号分隔值,并使用该变量执行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页面传递一个传递变量,该变量包含要插入到表中的逗号分隔值。

1 个答案:

答案 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)
相关问题