Professional Documents
Culture Documents
Taller de Herramientas de
Software : ST 213
SESION SEMANA12
STORE PROCEDURE
TRANSACTION
TEMAS DE INVESTIGACION GRUPAL
Docente: Ing. Ysabel Rojas
REPASO ANTERIOR
FUNDAMENTOS DE UNION
DE DATOS (JOIN)
OPERADORES COMUNES
DE UNION
STORE PROCEDURES
STORE PROCEDURES
STORE PROCEDURES
STORE PROCEDURES
EJEMPLO 1 - STORE
PROCEDURE
Crear un procedimiento para recuperar el
nombre de un Cliente, cuyo cdigo se pasa por
Parmetro (Ref Base de datos Northwind).
CREATE PROCEDURE ObtenerNombre
@CustomerID varchar(11) AS
SELECT COMPANYNAME
FROM CUSTOMERS
WHERE CustomerID = @CustomerID
EJEMPLO 1 - STORE
PROCEDURE
En este ejemplo para recuperar el nombre del cliente
cuyo cdigo sea '8011', deberemos ejecutar el procedimiento
pasndole como argumento este valor:
Las llamadas al procedimiento almacenado ya creado se puede
realizar de las siguientes formas
1) Pasando los argumentos en el mismo orden que en el que se
han declarado
Exec ObtenerNombre Anton'
esta sentencia produce la siguiente la salida
2) Pasando los argumentos nombrados. En este caso no hace
falta que los parmetros vayan en el mismo orden.
OBTENERNOMBRE @AU_ID = 'ANTON
STORE PROCEDURESOUTPUT
USO DE OUTPUT: PARMETROS POR REFERENCIA
Al ejecutar las anteriore sentencias, se obtiene el
resultado directamente en la ventana que se tenga
abierta en SQL Server.
Si se quiere obtener un parmetro de salida, como
resultado de la ejecucin del procedimiento, la
solucin para este caso es utilizar la palabra
reservada OUTPUT para los argumentos de salida.
EJEMPLO 2 - STORE
PROCEDURES
Se quiere obtener el nmero de clientes y el nmero de productos
que se tiene en la base de datos crear el procedimiento
almacenado y las instrucciones de ejecucin.
EJEMPLO 2 - STORE
PROCEDURES
Para ejecutar el anterior procedimiento, seguiremos los siguientes pasos:
1) Declarar las variables que vamos a utilizar para llamar al procedimiento.
La sintaxis para declarar una variable es utilizar la palabra reservada
DECLARE, seguido del nombre de la variable y el tipo.
S P del sistema
S P del sistema
sp_who
obtendremos una lista con todos los usuarios conectados,
sp_tables
Lista con todas las tablas del sistema
sp_columns
Para conocer todos los atributos de una tabla, deberemos
ejecutar sp_columns seguido del nombre de la tabla.
TRANSACTIONS
TRANSACCIONES EN SQL
Una transaccin es un conjunto de operaciones
que van a ser tratadas como una nica unidad
La transaccin ms simple en SQL Server es una
nica sentencia SQL. Por ejemplo
CARACTERISTICAS DE UNA
TRANSACCION
TRANSACTIONS
BLOQUEOS
TRANSACCIONES
EXPLICITAS
CONSIDERACIONES EN EL
USO DE TRANSACCIONES
TRANSACTIONS
EJEMPLO DE
TRANSACTIONS
USE SUPERMERCADOS abc
DECLARE @Error int
--Declaramos una variable que utilizaremos para almacenar un posible cdigo de error
BEGIN TRAN
--Iniciamos la transaccin
UPDATE Productos SET PrecioUnidad=2.5 WHERE NombreProducto =Queso de cabra
--Ejecutamos la primera sentencia
SET @Error=@@ERROR
--Si ocurre un error almacenamos su cdigo en @Error
--y saltamos al trozo de cdigo que deshara la transaccin. Si, eso de ah es un
--GOTO, el demonio de los programadores, pero no pasa nada por usarlo
--cuando es necesario
IF (@Error<>0) GOTO TratarError
--Si la primera sentencia se ejecuta con xito, pasamos a la segunda
UPDATE Productos SET PrecioUnidad=2.5 WHERE NombreProducto=Queso de cabra
SET @Error=@@ERROR
--Y si hay un error hacemos como antes
IF (@Error<>0) GOTO TratarError
--Si llegamos hasta aqu es que los dos UPDATE se han completado con
--xito y podemos guardar la transaccin en la base de datos
COMMIT TRAN
TratarError:
--Si ha ocurrido algn error llegamos hasta aqu
If @@Error<>0 THEN
BEGIN
PRINT Ha ecorrido un error. Abortamos la transaccin
--Se lo comunicamos al usuario y deshacemos la transaccin
--todo volver a estar como si nada hubiera ocurrido
ROLLBACK TRAN
END
Subconsultas Y Funciones II
Muchas Gracias!