SQL Server: ciclo MIENTRAS

Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.

SQL Server: ciclo MIENTRAS

Este tutorial de SQL Server describe cómo usar ciclo Sintaxis y ejemplos en SQL Server (Transact-SQL).

describir

En SQL Server, puede usar WHILE LOOP cuando no está seguro de cuántas veces se ejecutará el cuerpo del bucle y es posible que el cuerpo del bucle ni siquiera se ejecute una vez.

sintaxis

La sintaxis para WHILE LOOP en SQL Server (Transact-SQL) es:

WHILE condition
BEGIN
   {...statements...}
END;

parámetro o parámetro

La condición se prueba cada vez que pasa por el bucle. Si la condición se evalúa como VERDADERO, se ejecuta el cuerpo del bucle. Si la condición se evalúa como FALSO, termine el bucle. Las sentencias ejecutan las sentencias de código para cada bucle.

notas

  • Puede usar la declaración WHILE LOOP cuando no está seguro de cuántas veces desea que se ejecute el cuerpo del bucle.
  • Dado que la condición MIENTRAS se evalúa antes de ingresar al bucle, el cuerpo del bucle puede No incluso ejecutarlo una vez.
  • Consulte también la sentencia BREAK para salir antes de WHILE LOOP.
  • Consulte también la instrucción CONTINUE para reiniciar WHILE LOOP desde cero.

ejemplo

Veamos un ejemplo que muestra cómo usar WHILE LOOP en SQL Server (Transact-SQL).

Por ejemplo:

DECLARE @site_value INT;
SET @site_value = 0;

WHILE @site_value <= 10
BEGIN
   PRINT 'Inside WHILE LOOP on TechOnTheNet.com';
   SET @site_value = @site_value + 1;
END;

PRINT 'Done WHILE LOOP on TechOnTheNet.com';
GO

En este ejemplo de WHILE LOOP, una vez que @site_value supera 10, el bucle terminará de la siguiente manera:

WHILE @site_value <= 10

cuando @site_value <= 10 时,WHILE 循环将继续。一旦@site_value > 10, el ciclo terminará.

También puede usar WHILE LOOP en un cursor.

Por ejemplo:

DECLARE contacts_cursor CURSOR FOR
SELECT contact_id, website_id
FROM contacts;

OPEN contacts_cursor;
FETCH NEXT FROM contacts_cursor;

WHILE @@FETCH_STATUS = 0
   BEGIN
      FETCH NEXT FROM contacts_cursor;
      PRINT 'Inside WHILE LOOP on TechOnTheNet.com';
   END;
PRINT 'Done WHILE LOOP on TechOnTheNet.com';

CLOSE contacts_cursor;
DEALLOCATE contacts_cursor;
GO

En este ejemplo de WHILE LOOP, una vez que @@FETCH_STATUS ya no sea igual a 0, el ciclo terminará de la siguiente manera:

WHILE @@FETCH_STATUS = 0
(Visited 6 times, 1 visits today)