Sie sind auf Seite 1von 15

GE

PA
Procedimientos almacenados
Practica06

Procedimientos almacenados.

Un procedimiento almacenado es una consulta que se almacena en una base de datos en SQL en lugar de
almacenarse en el código cliente (normalmente C# o Java) en el equipo cliente.
Creación de procedimientos almacenados (Store Procedures)

La instrucción general para crear procedimientos almacenados es la siguiente:

CREATE PROC nombre_proc parametros


AS
INSTRUCCION SQL

Es necesario aclarar, que un procedimiento almacenado puede recibir parámetros de entrada y devolver
parámetros de salida.

Ejemplo 1:

Instrucción SQL
USE BDAVIACION
Select *
FROM Vuelos
WHERE orivue=’Lima’'
ORDER BY orivue,

Procedimiento con instrucción anterior

CREATE PROCEDURE Aplica01


AS
USE BDAVIACION
Select *
FROM Vuelos
WHERE orivue=’Lima’'
ORDER BY orivue
GO

Para probar el nuevo procedimiento, abra una nueva consulta de SQL Server y escriba y ejecute el código
siguiente.

USE BDAVIACION
EXEC Aplica01

Nota: los procedimientos almacenados los puede encontrar en la base de datos donde los trabaja, en la
opción programación.

Ejemplo2:

Utilizando parámetros de entrada:

Ya conocemos la sintaxis básica para la creación de procedimientos que es:


CREATE PROCEDURE NOMBRE
AS
Sentencias

Ahora si queremos utilizar parámetros de entrada antes de escribir el comando AS, debemos digitar los datos
que recibirá el procedimiento y el tipo de dato de la siguiente manera:

CREATE PROCEDURE NOMBRE


@parametro1 tipo,@parametro2 tipo,…
AS
Los parámetros tienen que llevar de prefijo el símbolo de @, así cuando se llame el procedimiento y se ingresen
los parámetros, estos se almacenaran en el orden que se declararon.

Digite el siguiente procedimiento:


CREATE PROCEDURE Aplica03
@numero varchar(4),@origen varchar(15), @destino varchar(15)
AS
insert into vuelos(nrovue,orivue,desvue) values(@numero,@origen,@destino)
PRINT 'EL REGISTRO SE HA INGRESADO CORRECTAMENTE'

Como puede ver el procedimiento pide tres parámetros numero, origen, y destino del tipo varchar, cuando se
llame al procedimiento deberá digitarse primero el numero de vuelo, luego el origen y después el destino en ese
orden. Para llamar este procedimiento utilice la siguiente sentencia.

EXEC Aplica03 'V115’,’Trujillo’,’Tumbes’

Para comprobar que se ingresó el registro, utilice la siguiente instrucción y busque el registro que acaba de
ingresar con el procedimiento.

Select * from vuelos

Ejercicios

1.- Crear un procedimiento almacenado para mostrar todos los registros de la tabla vuelos.
2.- Crear un procedimiento almacenado para mostrar todos los registros de la tabla vuelos que parten de la
ciudad de lima.
3.- Crear un procedimiento almacenado para ingresar los valores número de vuelo, origen y destino en la tabla
vuelos. Llame al procedimiento ingreso.
4.- Crear un procedimiento almacenado para mostrar los números impares entre 1 y 10.
5.- Crear un procedimiento almacenado para mostrar los números del 5 al 10 y sus respectivos cuadrados.
6.- Crear un procedimiento almacenado para mostrar la secuencia de números; 55555 4444 333 22 1
7.- Crear un procedimiento almacenado que permita el ingreso del número de horas que laboro un trabajador y
la tarifa normal. El programa debe determinar el salario neto, sabiendo que si el número de horas supera las
40, entonces la tarifa normal se incrementara en 50 % para las horas extras que supere a 40.
8.- Crear una tabla que se llame prueba compuesta de un campo llamado numero, y crear un procedimiento
almacenado que registre en dicho campo los números impares entre 1 y 10.

UNT- Base Datos IMg. Víctor Jaime Polo Romero


Solucion01

CREATE PROCEDURE pa1


as
select * from vuelos

Solucion02

ALTER PROCEDURE pa2


AS
select * from vuelos where orivue in('Lima');

Solucion03

CRATE PROCEDURE Ingreso


@numero varchar(4),@origen varchar(15), @destino varchar(15)
AS
insert into vuelos(nrovue,orivue,desvue) values(@numero,@origen,@destino)
PRINT 'EL REGISTRO SE HA INGRESADO CORRECTAMENTE'

Solucion04 BEGIN
CREATE PROCEDURE PA4 SET @j = 1;
AS WHILE (@j<=@i)
DECLARE @x1 INT; begin
SET @x1 = 1; PRINT @i;
WHILE (@x1<=10) SET @j = @j + 1;
BEGIN end
PRINT @x1; SET @i = @i - 1;
SET @x1 = @x1 +2; PRINT '----';
END
END

Solucion05
Solucion07

CREATE PROCEDURE PA7


CREATE PROCEDURE paa5
@nh int, @tar int
AS
AS
DECLARE @i INT;
Declare @sn real
SET @i = 5;
begin
WHILE (@i<=10)
if @nh>40
BEGIN
set @sn=40*@tar+(@nh-40)*@tar*1.5
PRINT str(@i)+str(@i*@i);
else
SET @i = @i + 1;
set @sn=@nh*@tar
END
end
print 'El Salario Neto es '+str(@sn)
Solucion06

CREATE PROCEDURE PA6


AS Solucion08
DECLARE @i INT; CREATE PROCEDURE PA8
DECLARE @j INT;
as
SET @i = 5; begin
WHILE (@i>=1) declare @i int;
set @i = 1; set @i=@i+2
WHILE (@i<=10) end;
begin end;
INSERT INTO prueba VALUES (@i);

UNT- Base Datos IMg. Víctor Jaime Polo Romero


UNT- Base Datos IMg. Víctor Jaime Polo Romero
UNT- Base Datos IMg. Víctor Jaime Polo Romero
UNT- Base Datos IMg. Víctor Jaime Polo Romero
UNT- Base Datos IMg. Víctor Jaime Polo Romero
UNT- Base Datos IMg. Víctor Jaime Polo Romero

Das könnte Ihnen auch gefallen