Está en la página 1de 15

Base de Datos

Store procedure / Functions


Transacciones:
COMMIT, ROLLBACK

Unidad 2: Creación de Base de Datos y Manipulación de Datos.


Semana 8

Docente: Ing. Allende Tauma Renzo R.


Logro de la Unidad:
Importancia

• Al término de la unidad, el Lograr que el trabajo con una Base de Datos nos sea
estudiante desarrolla consultas y familiar.
sentencias de actualización de Aprenderemos a crear, carga de datos, consultar y
bases de datos en el motor de base modificar la información de las tablas de una base
de datos SQL Server. de datos.
Store Procedure
Definición

Viendo los ejemplos anteriores podemos definir que un procedimiento almacenado contiene una serie de
instrucciones SQL bajo un nombre para poder llamarla después y que se ejecuten juntas.
Un store procedure es más rápido que una consulta normal por ya tener un plan de ejecución.
Sintaxis:

CREATE PROCEDURE procedure_name (


/* parámetros que empiezan con @ */ Para editar…
) AS ALTER x CREATE
BEGIN
/* declaración y asignación de variables*/
/* Código del procedimiento */
END;

Para ejecutar un procedimiento almacenado:

EXEC procedure_name /* valores de parámetros */ ;

Para eliminarlo:

DROP PROCEDURE procedure_name;


Introducción

• Procedimiento para listar los productos (ProductID - ProductName – UnitPrice -


UnitsInStock):

• Consulta original:
Select P.ProductID, P.ProductName, P.UnitPrice , P.UnitsInStock
from Products P

• Creando Procedimiento:
Create procedure SP_ListadoProd
As
BEGIN
Select P.ProductID, P.ProductName, P.UnitPrice , P.UnitsInStock
from Products P
END

• Ejecutando Procedimiento almacenado:

exec SP_ListadoProd
Store Procedures - Ejemplos

Para mostrar el contenido de la tabla Clientes haremos 3 SP:


• Sin parámetros:

• Con uno o varios parámetros:


Store Procedures - Ejemplos

• Procedimiento para insertar un registro en la tabla Shipper:

• Sentencia original:
insert into Shippers (CompanyName, Phone)
values (‘Tolva Couriers’,’954542452’)
• Creando Procedimiento:
create procedure SP_ShippersInsertaNuevo
(
@NombreEmpresa nvarchar(40),
@Fono nvarchar(24) El tipo de dato y tamaño
) de los datos son extraídos
As por detalle de la tabla
BEGIN
insert into Shippers (CompanyName, Phone)
values (@NombreEmpresa,@Fono)
END
• Ejecutando Procedimiento almacenado:
exec SP_ShippersInsertaNuevo ‘Tolva Couriers’,’954542452’
Store Procedures - Ejemplos

• Cree un store procedure que reciba 2 parámetros tipo precio unitario llamado ajuste
(@Ajuste) y otro tipo código producto llamado codprod (@CodProd). Cree una
constante factor (@Factor) con valor 1.1 y al precio unitario en las tablas PRODUCTO y
DETALLE DE ORDENES, multiplíquelos por el ajuste y el factor pero solo al producto
cuyo código coincida con el parámetro @Codprod.

Las variables no
pueden definirse y
asignárseles valor en
una sola línea
Funciones
Definición

Viendo los ejemplos anteriores podemos definir que una función contiene una serie de instrucciones SQL
bajo un nombre para poder llamarla después, que se ejecuten juntas pero que retorne un valor o tabla. En
caso de valor sería:

CREATE FUNCTION function_name (


/* parámetros que empiezan con @ */
) AS
RETURNS /* tipo de dato */
BEGIN
/* declaración y asignación de variables*/
/* Código del procedimiento */
END;

Para ejecutar un procedimiento almacenado:


SELECT function_name /* valores */ ;

Para eliminarlo:
DROP FUNCTION function_name;
Introducción

Una función es como un procedimiento pero retornará siempre un valor o


una tabla. Su nombre debe tener de prefijo un esquema, que seria dbo.
(database owner - propietario) por defecto.

Ejemplo de retorno de valor:

Puede usarse en un
select normal
Definición

En caso de tabla sería: :

CREATE FUNCTION function_name (


/* parámetros que empiezan con @ */
) AS
RETURNS TABLE
RETURN(
/* consulta con parámetros opcionales */
);

Para ejecutar un procedimiento almacenado:


SELECT * FROM function_name /* valores */ ;

Para eliminarlo:
DROP FUNCTION function_name;
Introducción

Ejemplo de retorno de tabla:

Sin ; al final
Conclusiones:
• Los procedimientos almacenados ejecutan una serie de
sentencias, pero no devuelven ningún valor. Sin embargo
pueden generar una consulta.

• Las funciones pueden devolver valores o tablas que se


pueden usar en consultas mediante el SELECT.

• Las transacciones contienen internamente COMMIT y


ROLLBACK permiten confirmar o cancelar una transacción
respectivamente.

También podría gustarte