J'ai les codes TSQL suivants:Curseur dynamique utilisé dans un bloc TSQL?
-- 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
....
J'utilise la valeur du nom que dans un bloc de boucle. Ici, je dois 1) définir une variable curseur, 2) l'ouvrir, 3) aller chercher deux fois et 4) le fermer. En PL/SQL, la boucle peut être comme ceci:
FOR rRec IN (SELECT name FROM employees) LOOP
DBMS_OUTPUT.put_line(rRec.name);
END LOOP;
C'est beaucoup plus simple que mes codes TSQL. Pas besoin de définir un curseur. Il est créé dynamiquement et accessible dans un bloc de boucle (un peu comme C# pour boucle). Vous ne savez pas s'il y a quelque chose de similaire dans TSQL?
J'utilise Microsoft SQL Server 2005 –