T- Sql For- Schleife
Hi,
ich habe ein Problem mit T-Sql: ich bin eine Prozedur am schreiben die mir von einer Tabelle "Projekte" alle Projekte zurück geben soll die einen bestimmten Projektleiter eingetragen haben. Daraufhin muss ich mit den Werten die mir zurückgegeben werden auf dieverse Tabellen zugreifen usw. usw.
Was ich bei dieser Prozedur brauche ist eine Art "For" bzw. Zählschleife in der ich auf die einzelnen "Rows" bzw. Projekte die mir zurück gegeben werden zugreifen muss.
Leider war ich im Internet bei der Suche nach einer For- Schleife in T-Sql bisher nich fündig geworden.
Gibt es in T-Sql eine For- Schleife, oder ähnliches? und wie sieht diese aus?
Vilen Dank für alle Antworten,
Die Hanswurst
ich habe ein Problem mit T-Sql: ich bin eine Prozedur am schreiben die mir von einer Tabelle "Projekte" alle Projekte zurück geben soll die einen bestimmten Projektleiter eingetragen haben. Daraufhin muss ich mit den Werten die mir zurückgegeben werden auf dieverse Tabellen zugreifen usw. usw.
Was ich bei dieser Prozedur brauche ist eine Art "For" bzw. Zählschleife in der ich auf die einzelnen "Rows" bzw. Projekte die mir zurück gegeben werden zugreifen muss.
Leider war ich im Internet bei der Suche nach einer For- Schleife in T-Sql bisher nich fündig geworden.
Gibt es in T-Sql eine For- Schleife, oder ähnliches? und wie sieht diese aus?
Vilen Dank für alle Antworten,
Die Hanswurst
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 111848
Url: https://administrator.de/forum/t-sql-for-schleife-111848.html
Ausgedruckt am: 16.05.2025 um 16:05 Uhr
1 Kommentar
Eine For Schleife wie in anderen Sprachen gibts nicht, aber das was Du erreichen willst macht man mit einem Cursor und der Fetch-Anweisung.
Hier ein kleines Beispiel:
Hier ein kleines Beispiel:
-- Variable für Kundennummer deklarieren
DECLARE @KUNNR char(10)
-- Cursor für Abfrage deklarieren
DECLARE kontakte CURSOR FOR
Select KUNNR from A_KONTAKTE while Bezirk='10'
-- Cursor öffnen
open kontakte
-- Kontakte durchgehen
FETCH NEXT
FROM kontakte
INTO @kunnr
-- Nur solange es noch Werte im Cursor gibt
WHILE @@FETCH_STATUS = 0
BEGIN
print 'Hier könnte man was mit der Kundennummer machen: ' + @kunnr
FETCH NEXT
FROM kontakte
INTO @kunnr
END
-- Cursor schließen
CLOSE kontakte
DEALLOCATE kontakte