Transacciones

04/01/2005 - 02:00 por Miguel Ortiz Falcón | Informe spam
Hola grupo!, cual es la estructura de un procedimiento
almacenado (por ejemplo), para realizar transacciones...

¿Como se declara/termina?
¿Cuales son las palabras reservadas, es decir, los
comandos?
¿En qué parte se especifica el commit y el rollback?
¿Cómo capturo los errores?

Saludos...

Miguel Ortiz Falcón
michaelof@hotmail.com

Preguntas similare

Leer las respuestas

#1 MAXI
04/01/2005 - 02:16 | Informe spam
Hola, pues varias preguntas en una sola ;)

¿Como se declara/termina?

BEGIN TRANSACTION

¿Cuales son las palabras reservadas, es decir, los
comandos?
Hay muchas, te recomiendo una lectura a los BOL

¿En qué parte se especifica el commit y el rollback?

COMMIT TRAN, cuando quieres que aplique, RollBACK tran generalmente luego
de detectar un error.

¿Cómo capturo los errores?

con @@error ej:

instruccion
if @@error <> 0
begin
rollback tran
return 99
end

pd: el @@error lo debes mirar por cada vez que terminas una instruccion ya
que el mismo se resetea por cada instruccion con lo cual podrias obtener
resultados no deseados :(

Un abrazo




Maxi

Buenos Aires - Argentina
Desarrollador .NET 3 Estrellas
Microsoft User Group (MUG)

"Miguel Ortiz Falcón" escribió en el mensaje
news:019501c4f1f8$daa8b750$
Hola grupo!, cual es la estructura de un procedimiento
almacenado (por ejemplo), para realizar transacciones...

¿Como se declara/termina?
¿Cuales son las palabras reservadas, es decir, los
comandos?
¿En qué parte se especifica el commit y el rollback?
¿Cómo capturo los errores?

Saludos...

Miguel Ortiz Falcón

Respuesta Responder a este mensaje
#2 Miguel Ortiz Falcón
04/01/2005 - 05:22 | Informe spam
Gracias por la respuesta, bueno, jeje, me refería a qué
palabrás reservadas había para el uso de trasacciones no
para todo Transact-SQL. Jeje, pero bueno, ya se deduce
cuales son...Gracias.

Y por otro lado, entonces esto sería correcto? (Es un
ejemplo)

BEGIN TRANSACTION

UPDATE Oils
SET OilName = 'Mi nombre'
WHERE OilID = 2

IF @@ERROR <> 0 -- Qué pasa si detecta un error aquí?
ROLLBACK TRAN -- ¿Abandona la transación?

INSERT INTO Oils
(OilName)
VALUES ('Descripcion')

IF @@ERROR <> 0
ROLLBACK TRAN
ELSE
COMMIT TRAN -- Notese que solo cuando no detecto
END TRANSACTION


Saludos... supongo que también puedo ejecutar un script
que no todo sea una transaccion, por ejemplo la mitad si
y la mitad no?...

Saludos y gracias MAXI

Miguel Ortiz Falcón


Hola, pues varias preguntas en una sola ;)

¿Como se declara/termina?

BEGIN TRANSACTION

¿Cuales son las palabras reservadas, es decir, los
comandos?
Hay muchas, te recomiendo una lectura a los BOL

¿En qué parte se especifica el commit y el rollback?

COMMIT TRAN, cuando quieres que aplique, RollBACK


tran generalmente luego
de detectar un error.

¿Cómo capturo los errores?

con @@error ej:

instruccion
if @@error <> 0
begin
rollback tran
return 99
end

pd: el @@error lo debes mirar por cada vez que terminas


una instruccion ya
que el mismo se resetea por cada instruccion con lo cual


podrias obtener
resultados no deseados :(

Un abrazo




Maxi

Buenos Aires - Argentina
Desarrollador .NET 3 Estrellas
Microsoft User Group (MUG)

"Miguel Ortiz Falcón" escribió


en el mensaje
news:019501c4f1f8$daa8b750$
Hola grupo!, cual es la estructura de un procedimiento
almacenado (por ejemplo), para realizar transacciones...

¿Como se declara/termina?
¿Cuales son las palabras reservadas, es decir, los
comandos?
¿En qué parte se especifica el commit y el rollback?
¿Cómo capturo los errores?

Saludos...

Miguel Ortiz Falcón



.

Respuesta Responder a este mensaje
#3 Maxi
04/01/2005 - 13:22 | Informe spam
Hola, eso esta bien, pero yo le pondria los Return luego de los RollBack
Tran ;)


Salu2
Maxi


"Miguel Ortiz Falcón" escribió en el mensaje
news:0bc501c4f215$09ed5400$
Gracias por la respuesta, bueno, jeje, me refería a qué
palabrás reservadas había para el uso de trasacciones no
para todo Transact-SQL. Jeje, pero bueno, ya se deduce
cuales son...Gracias.

Y por otro lado, entonces esto sería correcto? (Es un
ejemplo)

BEGIN TRANSACTION

UPDATE Oils
SET OilName = 'Mi nombre'
WHERE OilID = 2

IF @@ERROR <> 0 -- Qué pasa si detecta un error aquí?
ROLLBACK TRAN -- ¿Abandona la transación?

INSERT INTO Oils
(OilName)
VALUES ('Descripcion')

IF @@ERROR <> 0
ROLLBACK TRAN
ELSE
COMMIT TRAN -- Notese que solo cuando no detecto
END TRANSACTION


Saludos... supongo que también puedo ejecutar un script
que no todo sea una transaccion, por ejemplo la mitad si
y la mitad no?...

Saludos y gracias MAXI

Miguel Ortiz Falcón


Hola, pues varias preguntas en una sola ;)

¿Como se declara/termina?

BEGIN TRANSACTION

¿Cuales son las palabras reservadas, es decir, los
comandos?
Hay muchas, te recomiendo una lectura a los BOL

¿En qué parte se especifica el commit y el rollback?

COMMIT TRAN, cuando quieres que aplique, RollBACK


tran generalmente luego
de detectar un error.

¿Cómo capturo los errores?

con @@error ej:

instruccion
if @@error <> 0
begin
rollback tran
return 99
end

pd: el @@error lo debes mirar por cada vez que terminas


una instruccion ya
que el mismo se resetea por cada instruccion con lo cual


podrias obtener
resultados no deseados :(

Un abrazo




Maxi

Buenos Aires - Argentina
Desarrollador .NET 3 Estrellas
Microsoft User Group (MUG)

"Miguel Ortiz Falcón" escribió


en el mensaje
news:019501c4f1f8$daa8b750$
Hola grupo!, cual es la estructura de un procedimiento
almacenado (por ejemplo), para realizar transacciones...

¿Como se declara/termina?
¿Cuales son las palabras reservadas, es decir, los
comandos?
¿En qué parte se especifica el commit y el rollback?
¿Cómo capturo los errores?

Saludos...

Miguel Ortiz Falcón



.

Respuesta Responder a este mensaje
#4 ulises
04/01/2005 - 14:33 | Informe spam
Adicionalmente, elimina la sentencia END TRANSACTION, la
finalización de la transacción lo dan las sentencias
ROLLBACK ó COMMIT. Revisa el BOL.

Saludos,
Ulises

Hola, eso esta bien, pero yo le pondria los Return luego


de los RollBack
Tran ;)


Salu2
Maxi
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida