Цикл «До» в хранимой процедуре? - PullRequest
0 голосов
/ 11 августа 2011

Я довольно новичок во всем этом в отношении хранимых процедур. Я хочу выполнить запрос, а затем выполнить цикл по всем возвращаемым строкам. Я подумал о том, что вот так:

ALTER PROCEDURE usp_findDoor
@door int,
AS
DECLARE @foundId int
SELECT @foundId=Id FROM pd_orders WHERE door=@door

Для каждого идентификатора в вышеупомянутом запросе я хочу удалить в другой таблице, например,

DELETE FROM pd_md_detials WHERE order_id = @foundId

Теперь я делаю все это с помощью ASP-кода, и это выглядит так

Set db = con.execute("Select id from pd_orders WHERE door=1")
Do UNTIL db.EOF
  Con.execute("DELETE FROM pd_md_details WHERE order_id="& db("id"))
  db.movenext
LOOP

Возможно ли это?в SP или я должен переосмыслить?

Отредактированный раздел

Если у меня есть таблицы на трех уровнях, такие как

pd_order_ecolid -> pd_mounting_details -> pd_inventory

И соответствующие столбцы для вышеприведенных таблиц:

ID -> order_data -> pp_id

Тогда с этой строкой можно будет удалить все строки в таблице pd_inventory

DELETE FROM pd_inventory
WHERE pp_id IN 
  (
     SELECT id FROM pd_mounting_details 
     WHERE order_data IN 
       (
         SELECT id from pd_order_ecolid 
         WHERE order_head=@order_head AND order_line=@order_line
       )
  )

Я не могу попробовать это сам, я вижу, что я не нахожусь (но я не могу перестать думать о том, как это исправить)

С уважением

Ответы [ 2 ]

0 голосов
/ 11 августа 2011

Если вы просто хотите удалить, где door=@door вы можете просто;

delete from pd_colors where door=@door

Если вы хотите выполнить цикл для объединения выборки удаленных строк, вы можете вместо этого;

delete from pd_colors output deleted.* where door=@door

0 голосов
/ 11 августа 2011

Я что-то упустил?Вы хотите УДАЛИТЬ каждую запись WHERE door=@door?

Почему бы не изменить свой SQL:

DELETE FROM pd_colors WHERE door=@door - это удалит кортеж

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...