Procedure Output Transacciones 1 Sept
Create procedure pa_update_vendedor
@id_vendedor int,
@nombre varchar(50),
@msgvarchar(100) = ‘’ output
as
if exists(select * from vendedor where CODVEN = @id_vendedor)
begin
update vendedor
set nombre = @nombre
where CODVEN = @id_vendedor
if @@rowcount = 0
set @msg = ‘no seactualizó el registro’
else
set @msg = ‘si se actualizó el registro’
end
end
else
set @msg = ‘el registro no existe en artículo’
****
declare @SALIDA varchar(100)
exec pa_update_vendedor 888,'Juan Carlos' , @SALIDA output
print @SALIDA
TRANSACCCIONES EN LA BASE DE DATOS
Ejemplo de trasaccioens bloquedas:
Cliente No.1
begin tran
update CLIENTE
set FAX = 99999
go
Hasta aqui se correy pasa al ciente 2
update Articulo
set precio = 999
go
Observe que no se ha cerrado la transaccion.
Cliente No.2
begin tran
update CLIENTE
set FAX = 99999
go
Hasta aqui se corre y pasa alciente No.1 y sigue con la que sigue
update Articulo
set precio = 999
go
se dispara el error del servidor indicando un interbloqueo
Ahora debe cerrar una de las transacciones cliente aplicando uno delos siguientes sentencias, sino no se puden usar las tablas que estan en medio de la transaccion. Esto es acausa del Aislamiento que el DBMS aplica sobre la transaccion. :
commit tran
rollback tranPara invocar el procedure y producir un el error que disparee el Rollback Tran
Procedure 1 (Para generar el error en la transaccion del Procedure 2)
======================================
useVENTAS
go
create procedure blokear (@id as int) as begin
begin tran block
update Cliente
set numcli = @id
where numcli = @id
End
Ejemplo de Transacciones usandoPROCEDURE ALMACENADOS
Procedure 2 use VENTAS
================
create procedure eliminar_cliente
@id int ,
@mensaje varchar (100) output
as
if @id = (select numcli from CLIENTE where NUMCLI = @id)...
Regístrate para leer el documento completo.