Sintaxis:
Create Procedure Procedimiento @NombreParametro Tipo de dato As
Instrucciones
Posteriormente lo ejecutamos introduciendo un valor/res correspondiente al parámetro/os
introducido.
Exec Procedimiento Valor
Ejemplo 1
Crea el procedimiento numempdept con el parámetro ndep que es tipo smallint (equivalente al
short en visual).
El procedimiento hace una select que realiza grupos por número de deparamento y cuenta
cuantos empleados hay en cada departamento.
Exec NumEmpDept 20
Ejecuta el procedimiento introduciendo el valor 20 para el parámetro ndep, con lo que haría la
select sobre el departamento 20.
Ejemplo 2
Sintaxis:
Create Procedure Nombre @Variable tipo = Valor
As
Instrucciones
Donde Valor es el valor que le damos por defecto, este valor puede almacenar comodines (como
% que equivale a *).
Ejemplo 1
Create Procedure numemp @ndept smallint = 10
As
Select dept_no, count(*) as [num empleados]
From emp
Where dept_no = @ndept
Group by dept_no
danilo.rodriguez@fec.uni.edu.ni 1
Análisis y Diseño de Bases de Datos con Sql Server 2008
Ejemplo 2
Sacaría el salario, el oficio y la comisión de todos los que tengan apellido Jiménez, sino
pusiésemos parámetro, por defecto sacaría los que tuviesen apellido Rey.
Ejemplo 3
Select oficio, salario, comision from emp where apellido like '%' + @papellido + '%';
Exec salariooficio ‘s’
Sacaría oficio, salario y comisión de los empleados que tuviesen una s en su apellido.
Ejemplo 4
Introducir oficio y salario debe sacar el apellido de los empleados que tengan el mismo apellido
y ganen mas del salario indicado. Debemos hacer que sino introduce nada saque todos los
registros.
Ejemplo 5
Sacar todos los empleados que se dieron de alta entre una determinada fecha inicial y fecha final
y que pertenecen a un determinado departamento.
danilo.rodriguez@fec.uni.edu.ni 2
Análisis y Diseño de Bases de Datos con Sql Server 2008
Ejemplo 6
Crear procedimiento que inserte un empleado. Crear otro procedimiento que borre un empleado
que coincida con los parámetros indicados (los parámetros serán todos los campos de la tabla
empleado)
danilo.rodriguez@fec.uni.edu.ni 3
Análisis y Diseño de Bases de Datos con Sql Server 2008
Sintaxis de declaración
Declare @nombre tipo_dato
Sintaxis de asignación directa
Set @nombre = valor
Sintaxis de asignación mediante consulta
Select @nombre = campo from tabla
Sintaxis
Create Procedure Nombre @Variable tipodedato Output
Instrucciones
Print @Variable
Ejemplo 1:
danilo.rodriguez@fec.uni.edu.ni 4
Análisis y Diseño de Bases de Datos con Sql Server 2008
Ejemplo 2:
EJEMPLOS:
end
end
danilo.rodriguez@fec.uni.edu.ni 5
Análisis y Diseño de Bases de Datos con Sql Server 2008
PROCEDIMIENTOS ALMACENADOS
1) Sacar todos los empleados que se dieron de alta entre una determinada fecha inicial y fecha
final y que pertenecen a un determinado departamento.
3) Crear un procedimiento que recupere el nombre, número y número de personas a partir del
número de departamento.
4) Crear un procedimiento igual que el anterior, pero que recupere también las personas que
trabajan en dicho departamento, pasándole como parámetro el nombre.
6) Igual que el anterior, pero si no le pasamos ningún valor, mostrará los datos de todos los
empleados.
7) Crear un procedimiento para mostrar el salario, oficio, apellido y nombre del departamento
de todos los empleados que contengan en su apellido el valor que le pasemos como
parámetro.
11) Crear procedimiento que borre un empleado que coincida con los parámetros indicados (los
parámetros serán todos los campos de la tabla empleado).
danilo.rodriguez@fec.uni.edu.ni 6
Análisis y Diseño de Bases de Datos con Sql Server 2008
12) Modificación del ejercicio anterior, si no se introducen datos correctamente, informar de ello
con un mensaje y no realizar la baja. Si el empleado introducido no existe en la base de
datos, deberemos informarlo con un mensaje que devuelva el nombre y número de empleado
del empleado introducido. Si el empleado existe, pero los datos para eliminarlo son
incorrectos, informaremos mostrando los datos reales del empleado junto con los datos
introducidos por el usuario, para que se vea el fallo.
13) Crear un procedimiento para insertar un empleado de la plantilla del Hospital. Para poder
insertar el empleado realizaremos restricciones:
danilo.rodriguez@fec.uni.edu.ni 7