Está en la página 1de 10

PROCEDIMIENTOS EN SQL SERVER

PROCEDIMIENTOS ALMACENADOS
 Un procedimiento almacenado es un conjunto de instrucciones a
las que se les da un nombre, se almacena en la base de datos
activa. Permiten agrupar y organizar tareas repetitivas.
Ventajas:
 Comparten la lógica de la aplicación con las otras aplicaciones,
con lo cual el acceso y las modificaciones de los datos se hacen en
un solo sitio.
 Permiten realizar todas las operaciones que los usuarios
necesitan evitando que tengan acceso directo a las tablas.
 Reducen el tráfico de red; en vez de enviar muchas instrucciones,
los usuarios realizan operaciones enviando una única
instrucción, lo cual disminuye el número de solicitudes entre el
cliente y el servidor.
 Un procedimiento almacenados puede hacer referencia a objetos
que no existen al momento de crearlo. Los objetos deben existir
cuando se ejecute el procedimiento almacenado.
PROCEDIMIENTOS
 Al crear un procedimiento almacenado, las
instrucciones que contiene se analizan para verificar si
son correctas sintácticamente. Si se encuentra algún
error, el procedimiento se compila, pero aparece un
mensaje "con advertencias" que indica tal situación.
 Un procedimiento almacenado se invoca llamándolo.
 En primer lugar se deben escribir y probar las
instrucciones que se incluyen en el procedimiento
almacenado, luego, si se obtiene el resultado esperado,
se crea el procedimiento.
PROCEDIMIENTOS
 Los procedimientos almacenados pueden hacer
referencia a tablas, vistas, a funciones definidas por el
usuario, a otros procedimientos almacenados.
 Un procedimiento almacenado pueden incluir
cualquier cantidad y tipo de instrucciones DML (de
manipulación de datos, como insert, update, delete),
no instrucciones DDL (de definición de datos, como
create..., drop... alter...).
PROCEDIMIENTOS
 Para crear un procedimiento almacenado se emplea la
instrucción "create procedure".
 La sintaxis básica es:
 create procedure NOMBREPROCEDIMIENTO
 as

 INSTRUCCIONES
;
PROCEDIMIENTOS
 Crear un procedimiento almacenado que incremente en un
10% el precio de todos los productos:
create procedure sp_productos
as
update productos set precio=precio+precio*0.1;
Entonces, se crea un procedimiento almacenado colocando
"create procedure" luego el nombre del procedimiento y seguido
de "as" las sentencias que definen el procedimiento.
 Para ejecutar el procedimiento almacenado se ejecuta:
 execute sp_productos;
PROCEDIMIENTOS
 Los procedimientos almacenados pueden recibir y devolver
información; para ello se emplean parámetros.
 Veamos los primeros. Los parámetros de entrada
posibilitan pasar información a un procedimiento. Para que
un procedimiento almacenado admita parámetros de
entrada se deben declarar al crearlo. La sintaxis es:
 create procedure NOMBREPROCEDIMIENTO
(PARAMETRO in TIPODEDATO)
 as
 INSTRUCCIONES;
PROCEDIMIENTOS
 Los parámetros se definen luego del nombre del procedimiento.
Pueden declararse varios parámetros por procedimiento, se separan por
comas.
 Cuando el procedimiento es ejecutado, deben especificarse valores para
cada uno de los parámetros (en el orden que fueron definidos), a
menos que se haya definido un valor por defecto, en tal caso, pueden
omitirse.
 Crear un procedimiento que recibe el código del fabricante de un
producto como parámetro y luego lo utiliza para aumentar los precios
de tales productos:

 create procedure sp_productos_parametros(@fab char(20))


 as
 update PRODUCTOS set precio=precio+(precio*0.1)
 where id_fab=@fab;
PROCEDIMIENTOS
 Crear otro procedimiento que reciba 2 parámetros, el código del
fabricante y el valor de incremento (que tiene por defecto el valor
10):
 create procedure sp_productos_dos_parametros(@fab in
varchar(20),@porcentaje INT = 10)
 as
 update productos set precio=precio+(precio*@porcentaje/100)
 where id_fab=@fab;
 execute sp_productos_dos_parametros(‘ACI',30);
 Se puede omitir el segundo parámetro al invocar el
procedimiento porque tiene establecido un valor por defecto:
 execute sp_productos_dos_parametros(‘ACI');
PROCEDIMIENTOS
 En caso que un procedimiento tenga definidos varios
parámetros con valores por defecto y al invocarlo
colocamos uno solo, Sql SERVER asume que es el
primero de ellos. si son de tipos de datos diferentes,
SQL SERVER los “convierte”.

También podría gustarte