Begin … End
Las palabras clave de Begin and End encierran una serie de declaraciones para que sean
tratado como una unidad por construcciones de control de flujo similar al if ... else. Una serie
de declaraciones incluidas en begin y end se llaman bloque de instrucción.
Su sntaxis es la siguiente
begin
statement block
end
ejemplo:
if (select avg(price) from titles) < $15
begin
update titles
set price = price * 2
select title, price
from titles
where price > $28
end
If … else
La palabra reservada if, con o sin su acompañante else, introduce una condición que
determina si se ejecuta la siguiente declaración. En el Transact-SQL la sentencia se ejecuta
si la condición se cumple, es decir, si devuelve TRUE. La palabra reservada else introduce
una instrucción Transact-SQL alternativa que se ejecuta cuando la condición if devuelve
FALSE.
Su sintaxis
If
boolean_expression
statement
[else
return
La palabra reservada return sale de un lote o procedimiento incondicionalmente. Puede ser
utilizado en cualquier punto de un lote o un procedimiento. Cuando se usa en
procedimientos almacenados, return puede aceptar un argumento opcional para devolver
un estado a la persona que llama. Las declaraciones después de la devolución no se
ejecutan.
Sintaxis: return [int_expression]
Ejemplo
create procedure findrules @nm varchar(30) = null as
if @nm is null
begin
print "You must give a user name"
return
end
else
begin
select sysobjects.name, sysobjects.id,
sysobjects.uid
from sysobjects, master..syslogins
where master..syslogins.name = @nm
and sysobjects.uid = master..syslogins.suid
and sysobjects.type = "R"
end
La palabra reservada print, utilizada en el ejemplo anterior, muestra un usuario definido
mensaje o el contenido de una variable local en la pantalla del usuario. El local variable
Raiserror
raiserror muestra un error definido por el usuario o un mensaje de variable local en la
pantalla del usuario y establece una bandera del sistema para registrar el hecho de que se
ha producido un error. Al igual que con la print, la variable local debe declararse dentro del
mismo lote o procedimiento en el que se usa. El mensaje puede tener hasta 255 caracteres
de largo.
Sintaxis: raiserror error_number
[{format_string | @local_variable}] [, arg_list]
[extended_value = extended_value [{,
extended_value = extended_value}...]]
waitfor
La palabra reservada waitfor especifica una hora del día, un intervalo de tiempo o un evento
en el cual la ejecución de un bloque de instrucciones, procedimiento almacenado o
transacción es que se produzca.
Sintaxis: waitfor {delay "time" | time "time" | errorexit | processexit | mirrorexit}