Categorías: Todo - iterativo - flujo - condicional - control

por Marlon Garcia hace 4 años

321

Sentencias de control para SQL Server

En el contexto de SQL Server, las sentencias de control permiten modificar el flujo de ejecución de las instrucciones en un código. Estas sentencias se dividen en tres grupos principales:

Sentencias de control para SQL Server

Sentencias de control para SQL Server

Bibliografía

1. https://techperu.wordpress.com/2012/03/26/transact-sql-sentencias-de-control-de-flujo-sql-server/ 2. https://jeanmazuelos.com/biblioteca/cursos/oracle-plsql-basico/capitulo-4-sentencias-de-control 3. https://www.techonthenet.com/sql_server/loops/while.php 4. https://www.techonthenet.com/sql_server/loops/goto.php 5. https://www.techonthenet.com/sql_server/index.php

Permiten cambiar el flujo de ejecución de las instrucciones de nuestro código, de esta manera se puede indicar la ejecución de un bloque de instrucciones cuando se cumpla una condición.

En SQL se tiene los siguientes grupos de sentencias de control: Condicional Iterativo Secuencial

Secuencial
GOTO

DECLARE @site_value INT; SET @site_value = 0; WHILE @site_value <= 10 BEGIN IF @site_value = 2 GOTO Ejemplo; SET @site_value = @site_value + 1; END; Ejemplo: PRINT 'Ejemplo.com'; GO

Permite cambiar la línea secuencial de la ejecución hacia una etiqueta. Las etiquetas son marcadas con los símbolos << y >>.

Iterativo
WHILE-LOOP

DECLARE @site_value INT; SET @site_value = 0; WHILE @site_value <= 10 BEGIN PRINT 'Inside WHILE LOOP on Ejemplo.com'; SET @site_value = @site_value + 1; END; PRINT 'Done WHILE LOOP on Ejemplo.com'; GO

Permite la ejecución de una o varias instrucciones, la ejecución se define a partir de una condición.

Condicional
Sentencia de control SQL Server

RETURN

DECLARE @Contador INT SET @Contador = 10 WHILE (@Contador > 0) BEGIN PRINT '@Contador = ' + CONVERT(NVARCHAR,@Contador) SET @Contador = @Contador -1 IF (@Contador = 5) RETURN END PRINT 'FIN'

Pone fin a la instrucción que se ejecuta

CASE

DECLARE @PAIS NVARCHAR(20) SELECT @PAIS = CASE 'PE' WHEN 'PE' THEN 'PERU' WHEN 'PE' THEN 'MEXICO' WHEN 'PE' THEN 'PISCO' ELSE 'No existe registro' END PRINT @PAIS

Permite evaluar diferentes opciones, por cada opción se realiza una instrucción específica.

WHILE

Ejemplo:

DECLARE @Contador INT SET @Contador = 10 WHILE (@Contador > 0) BEGIN PRINT '@Contador =' + CONVERT (NVARCHAR, @Contador) SET @Contador = @Contador -1 END

Compara un valor y si es verdadero lo ejecuta.

IF-THEN-ELSE

Ejemplo

DECLARE @TotalProductos INT SELECT @TotalProductos = COUNT(*) FROM Products IF @TotalProductos > 100 PRINT 'Existen mas de 100 Productos' ELSE PRINT 'Existe menos de 100 Productos'

Permite la ejecucion de una o varias lineas de codigo segun una condicion. La consdicion se especifica en la clausula IF, si la condicion el verdadera ejecuta el codigo bajo la clausula THEN, caso contrario se ejecuta el codigo de la clausula ELSE.