Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Удаление через хранимую процедуру (http://forum.oszone.net/showthread.php?t=216848)

JaRule 30-09-2011 15:01 1763105

Удаление через хранимую процедуру
 
Всем доброе время суток! Ребят, такая задача: нужно создать хранимую процедуру, которая удаляет из таблицы набор данных, например 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 1763285

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


Время: 16:35.

Время: 16:35.
© OSzone.net 2001-