Есть ли способ захватить значения, которые нужно вставить в таблицу, в одну переменную как значения, разделенные запятой, и использовать переменную для выполнения инструкции insert into
. Например, можно создать тестовую таблицу какВставить в значения таблицы из хранимой процедуры одной переменной SQL
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)
Причина за этот вопрос заключается в том, я не хочу, чтобы передать все переменные из веб-страницы, хранимая процедура. Вместо этого я хочу передать одну переменную с веб-страницы, которая содержит значения, разделенные запятой, которые нужно вставить в таблицу.
Лучший способ - передать все значения переменных в качестве отдельного параметра. Ваш метод приведет к SQL Injection – Madhivanan
@Madhivanan, есть ли какие-либо конкретные причины для этого? Я подумал, что лучше иметь одну переменную вместо передачи отдельных переменных, поскольку каждая таблица имеет большее количество столбцов. – bhuvana
да это приводит к sql injection stackoverflow.com/questions/601300/what-is-sql-injection – Madhivanan