Est-il possible d'utiliser des paramètres dans un curseur SQL Server?

J'ai une relation parent-enfant dans la base de données. Ce que je dois faire est de faire une boucle par le parent de la requête, et à l'aide de la mère de la clé primaire, obtenu d'obtenir ses enfants. La question que je vais avoir, c'est que j'ai besoin d'utiliser un paramétrée curseur (passer à la clé) pour ce faire.

Est-il une telle chose dans SQL Server ou une astuce pour imiter? J'ai essayé de faire cela, mais il ne fonctionne pas:

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

Mais il semble qu'il ne ramasse pas de moi réglage de l' @someKey.

Toute aide serait grandement appréciée. Merci!

Mise à JOUR

Je devrait inclure davantage d'informations que j'ai fait l'exemple sembler trop simple. J'ai plusieurs @someKey valeurs que j'ai besoin d'utiliser. Comme mentionné avant, j'ai une relation parent-enfant et je peux avoir jusqu'à 6 enfants. Je suis donc d'obtenir une liste de parents et de deux colonnes et d'une itération à travers elle. Alors que dans le TOUT en BOUCLE, j'ai voulu obtenir la clé primaire de la mère et de l'appeler d'un autre curseur pour obtenir les renseignements sur l'enfant (différentes colonnes retournées). Donc, je voudrais faire plusieurs appels à l'enfant curseur avec les différents @someKey ensemble de valeurs. L'espoir qui fait sens.

Pouvez-vous juste la requête pour les données et de ne pas utiliser, sélectionnez ceci est habituellement plus efficace?

OriginalL'auteur Ascalonian | 2011-06-06

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *