Войти

Показать полную графическую версию : Удаление через хранимую процедуру


JaRule
30-09-2011, 15:01
Всем доброе время суток! Ребят, такая задача: нужно создать хранимую процедуру, которая удаляет из таблицы набор данных, например 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). Как сделать чтобы удалялись все переданные?
Заранее спасибо!

Delirium
30-09-2011, 19:00
JaRule, почитай тему из соседней ветки - http://forum.oszone.net/thread-216209.html.
Параметр надо делать максимально большим, т.к. ты не знаешь количество ID, которое будет передавать. В SQL Server это NVARCHAR(MAX).
Суть в том, что тебе надо будет( как в примере выше) сформировать сначала готовую строку, а потом запустить процедуру, выполняющую любой корректный SQL код.




© OSzone.net 2001-2012