[T-SQL] Boucle WHILE / PRINT

Fermé
elsadelatoundra Messages postés 126 Date d'inscription mercredi 13 septembre 2006 Statut Membre Dernière intervention 3 juillet 2008 - 14 mars 2008 à 11:50
 joujou - 6 févr. 2009 à 11:02
Bonjour,

Je débute en TSQL et je n'arrive pas trop à faire marcher ma boucle while et surtout le print !!

Je fais un print dans une boucle while pour voir si je rentre dedans ...

Voici mon code :
ALTER PROCEDURE dbo.maProcedure
    @i integer,
	@nbEnregistrements integer
	
AS

BEGIN TRANSACTION /*procedure*/

    declare     /*Variables destinées aux traitements*/
    /* A */ @a nvarchar(255),
	/* B */ @b float,

            
    BEGIN /*traitement*/
	/*Initialisation des variables utilisées dans la procédure*/
	
	SET @i = 0
	
	SELECT @nbEnregistrements = (
		SELECT COUNT(*)
		FROM dbo.PC
		WHERE (Argument = 0)
		)

	
		WHILE (@i < @nbEnregistrements)
			BEGIN /*While*/
			PRINT 'On est dans le WHILE';
			END /*While*/
	END /*traitement*/

COMMIT TRANSACTION /* procedure */


Quand j'exécute ma procédure, SQL Server me dit "Command(s) completed successfully." mais ne m'imprime rien :-S

J'espère que l'un d'entre vous saura me dire ce qui ne va pas (à part moi !) !!

Je vous remercie d'avance ...
A voir également:

4 réponses

Bonjour,

Il manque une incrementation dans "WHILE", SET @i = @i +1

Fouad
2
essaye avec
PRINT('Ton message')
1
SebManfred Messages postés 484 Date d'inscription mardi 28 août 2007 Statut Membre Dernière intervention 20 mai 2011 128
14 mars 2008 à 15:08
tu initialise i à 0 et ensuite tu teste si i<nbenregistrement
mais si nbenregistrement=0, tu n'es pas dans ce cas : tu as une inégalité stricte...
tu as essayé d'afficher le nombre d'enregistrements, pour voir? ça ne m'étonnerait pas qu'il soit égal à 0.
0
BONJOUR




La syntaxe du while est la suivante :

while condition, instruction_1, ... ,instruction_N , end

ou encore (dans un script ou une fonction) :

while condition
instruction_1
.............
instruction_N
end

où chaque instruction_k peut être suivie d'un point virgule et ce qui est appelé condition est en fait une expression délivrant un scalaire booléen.
0