Ich habe den folgenden TSQL-Codes:Dynamischer Cursor in einem Block in TSQL verwendet?
-- 1. define a cursor
DECLARE c_Temp CURSOR FOR
SELECT name FROM employees;
DECLARE @name varchar(100);
-- 2. open it
OPEN c_Temp;
-- 3. first fetch
FETCH NEXT FROM c_Temp INTO @name;
WHILE @@FETCH_STATUS = 0
BEGIN
print @name;
FETCH NEXT FROM c_Temp INTO @name; -- fetch again in a loop
END
-- 4. close it
....
Ich benutze den Namen Wert nur in einem Loop-Block. Hier muss ich 1) eine Cursorvariable definieren, 2) öffnen, 3) zweimal holen und 4) schließen. In PL/SQL kann die Schleife wie folgt aussehen:
Es ist viel einfacher als meine TSQL-Codes. Keine Notwendigkeit, einen Cursor zu definieren. Es wird dynamisch erstellt, auf das innerhalb eines Schleifenblocks zugegriffen werden kann (ähnlich wie bei C# for loop). Nicht sicher, ob es in TSQL etwas Ähnliches gibt?
Ich benutze Microsoft SQL Server 2005 –