Resumen: en este tutorial, aprenderá a utilizar la sentencia BEGIN...END
para envolver un conjunto de sentencias Transact-SQL en un bloque de sentencias.
Resumen de la sentencia BEGIN…END
La sentencia BEGIN...END
se utiliza para definir un bloque de sentencias. Un bloque de sentencias consiste en un conjunto de sentencias SQL que se ejecutan juntas. Un bloque de sentencias también se conoce como lote.
En otras palabras, si las sentencias son frases, la sentencia BEGIN...END
permite definir párrafos.
Lo siguiente ilustra la sintaxis de la sentencia BEGIN...END
:
Code language: SQL (Structured Query Language) (sql)
En esta sintaxis, se coloca un conjunto de sentencias SQL entre las palabras clave BEGIN
y END
, por ejemplo:
Code language: SQL (Structured Query Language) (sql)
Salida:
Para ver los mensajes generados por la sentencia PRINT
, en SQL Server Management Studio, hay que hacer clic en la pestaña Messages
. Por defecto, la pestaña Mensajes está oculta.
En este ejemplo:
- En primer lugar, tenemos un bloque que comienza con la palabra clave
BEGIN
y termina con la palabra claveEND
. - En segundo lugar, dentro del bloque, tenemos una sentencia
SELECT
que encuentra los productos cuyos precios de lista son superiores a 100.000. A continuación, tenemos la sentenciaIF
para comprobar si la consulta devuelve algún producto e imprimir un mensaje si no devuelve ningún producto.
Nótese que la @@ROWCOUNT
es una variable del sistema que devuelve el número de filas afectadas por la última sentencia anterior.
La sentencia BEGIN... END
limita un bloque lógico de sentencias SQL. A menudo utilizamos el BEGIN...END
al inicio y al final de un procedimiento almacenado y de una función. Pero no es estrictamente necesario.
Sin embargo, el BEGIN...END
es necesario para las sentencias IF ELSE
, WHILE
, etc., donde se necesita envolver múltiples sentencias.
Anidamiento BEGIN… END
El bloque de sentencias puede ser anidado. Simplemente significa que puede colocar una sentencia BEGIN...END
dentro de otra sentencia BEGIN... END
.
Considere el siguiente ejemplo:
Code language: SQL (Structured Query Language) (sql)
En este ejemplo, hemos utilizado la sentencia BEGIN...END
para envolver todo el bloque de sentencias. Dentro de este bloque, también usamos la BEGIN...END
para la sentencia IF...ELSE
.
En este tutorial, ha aprendido sobre la sentencia BEGIN...END
de SQL Server para envolver sentencias Transact-SQL en bloques.