Есть ли способ использовать параметры в курсоре SQL Server?

У меня есть родительско-дочерние отношения в базе данных. Что мне нужно сделать, так это пройти через родительский запрос и, используя родительский первичный ключ, получить его дочерние элементы. Проблема, с которой я столкнулся, заключается в том, что для этого мне нужно использовать параметризованный курсор (передать ключ).

Есть ли такая вещь в SQL Server или уловка, чтобы имитировать это? Я пробовал это сделать, но это не сработало:

DECLARE @value   VARCHAR(20);
DECLARE @someKey NUMERIC(19,0);

DECLARE main_curs 
CURSOR FOR SELECT value FROM someTable where key = @someKey;

SET @someKey = 12345;

OPEN main_curs
FETCH NEXT FROM main_curs INTO @value;
CLOSE main_curs
DEALLOCATE main_curs

Но, похоже, меня не волнует установка @someKey.

Мы будем благодарны за любую помощь по этому поводу. Спасибо!

ОБНОВЛЕНИЕ

Я должен включить больше информации, так как я сделал пример слишком простым. У меня есть несколько значений @someKey, которые мне нужно использовать. Как упоминалось ранее, у меня есть отношения между родителями и детьми, и у меня может быть до 6 детей. Итак, я получаю список родителей и соответствующие столбцы и просматриваю его. Находясь в WHILE-LOOP, я хотел получить первичный ключ от родителя и вызвать другой курсор для получения дочерней информации (возвращаются разные столбцы). Поэтому я бы сделал несколько вызовов дочернего курсора с разными установленными значениями @someKey. Надеюсь, это имеет смысл.

7
задан Ascalonian 6 June 2011 в 19:05
поделиться