Gibt es eine Möglichkeit zur Verwendung von Parametern in einer SQL Server-cursor?

Habe ich eine Eltern-Kind-Beziehung in der Datenbank. Was ich tun müssen, ist, eine Schleife durch die übergeordnete Abfrage, und mit dem übergeordneten primären Schlüssel, bekam seine Kinder. Das Problem, das ich habe ist, dass ich einen parametrisierten cursor (pass im Schlüssel), dies zu tun.

Ist es so eine Sache, die in SQL Server oder einem trick zu imitieren, diese? Ich habe versucht zu tun, aber es hat nicht funktioniert:

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

Aber es scheint, dass es nicht abholen mir die Einstellung der @someKey.

Jede Hilfe auf diesem würde sehr geschätzt werden. Danke!

UPDATE

Sollte ich mehr Informationen, als ich auf das Beispiel zu einfach scheinen. Ich habe mehrere @someKey Werte, die ich verwenden müssen. Wie bereits erwähnt, habe ich einen Eltern-Kind-Beziehung und ich kann bis zu 6 Kinder. Also ich bin immer eine Liste der Eltern und die entsprechenden Spalten ein und Durchlaufen es. Während in der WHILE-SCHLEIFE, wollte ich den Primärschlüssel aus dem parent-und rufen Sie einen anderen cursor, um die untergeordneten Informationen (verschiedene Spalten zurückgegeben). Also ich würde mehrere Aufrufe der child cursor mit verschiedenen @someKey Werte gesetzt. Hoffe das macht Sinn.

  • Kann dir nur die Abfrage der Daten und nicht eine select-dieser ist in der Regel effizienter?
InformationsquelleAutor Ascalonian | 2011-06-06
Schreibe einen Kommentar