![]() |
Удаление через хранимую процедуру
Всем доброе время суток! Ребят, такая задача: нужно создать хранимую процедуру, которая удаляет из таблицы набор данных, например delete from table where id in (1,2,3), так вот, id записей, которые надо удалить, должны передаваться этой процедуре в качестве параметра, но какой нужно задать тип парамертра и как в него передать набор этих id чтобы он запихнул их в (in), количество их может быть любое. Я сделал входной параметр arg:varchar(255), сама процедура выглядит так:
Proc1(In arg Varchar(255))\ begin delete from table where id in (arg); end; а обращаюсь к ней как call Proc1("1,2,3"), происходит удаление только первой записи их переданных (id=1). Как сделать чтобы удалялись все переданные? Заранее спасибо! |
JaRule, почитай тему из соседней ветки - http://forum.oszone.net/thread-216209.html.
Параметр надо делать максимально большим, т.к. ты не знаешь количество ID, которое будет передавать. В SQL Server это NVARCHAR(MAX). Суть в том, что тебе надо будет( как в примере выше) сформировать сначала готовую строку, а потом запустить процедуру, выполняющую любой корректный SQL код. |
Время: 16:35. |
Время: 16:35.
© OSzone.net 2001-