TRANSACCIONES

01/04/2005 - 20:11 por CCALLOQUISPE PALOMINO | Informe spam
HOLA:
En visual basic net yo hacia
try

catch ex as exception

end try
en sql lo equivalente cual es, es que lo necesito para realizar una
transaccion si la primera sentencia se ejecuta bien y la segunda se ejecuta
utilizar un rollback transaction.
muchas gracias por anticipado.
CCALLOQUISPE
 

Leer las respuestas

#1 Alejandro Mesa
01/04/2005 - 20:27 | Informe spam
En sql server 2000 tienes que consultar @@ERROR despues de cada sentencia y
ejecutar las sentencias o comandos necesarios, o redirijir la ejecucion
usando GOTO. En la nueva version 2005 tendremos BEGIN TRY ... END TRY BEGIN
CATCH ... END CATCH.

Ejemplo:

create procedure dbo.usp_proc1
@par1 int,
...
as
set nocount on

begin transaction

insert into t (...) values (...)

if @@error
begin
rollback transaction
raiserror('Error insertando en tabla [t].', 16, 1)
return 1
end

update t set ...

if @@error
begin
rollback transaction
raiserror('Error actualizando tabla [t].', 16, 1)
return 1
end

commit transaction

return @@error
go

o

create procedure dbo.usp_proc1
@par1 int,
...
as
set nocount on

begin transaction

insert into t (...) values (...)

if @@error goto Error_Handler

update t set ...

if @@error goto Error_Handler

commit transaction

return @@error

Error_Handler:
if @@trancount > 0
begin
rollback transaction
end

raiserror('bla bla bla ...', 16, 1)

return 1
go


Implementing Error Handling with Stored Procedures
http://www.sommarskog.se/error-handling-II.html

Error Handling in SQL Server – a Background
http://www.sommarskog.se/error-handling-I.html


AMB

"CCALLOQUISPE PALOMINO" wrote:

HOLA:
En visual basic net yo hacia
try

catch ex as exception

end try
en sql lo equivalente cual es, es que lo necesito para realizar una
transaccion si la primera sentencia se ejecuta bien y la segunda se ejecuta
utilizar un rollback transaction.
muchas gracias por anticipado.
CCALLOQUISPE

Preguntas similares