SOS!! Como hacer Rollback en el Query analizer

08/07/2005 - 18:19 por Jenny | Informe spam
Hola a todos,
Hace un momento ejecute una Update en mi base de datos en el query
analyzer, el cual modifico registros que no debia, esto sucedio porque hice
mi sentencia incorrectamente , saben si hay alguna forma de hacer un
rollback.

Gracias,

Jenny.

Preguntas similare

Leer las respuestas

#1 sergio
08/07/2005 - 18:45 | Informe spam
Hmmm.. No hay manera de hacer rollback. Pero podes usar mas o menos lo
seguinte para recuperar los datos anteriores, si tu base de datos usa el
modo de recovery FULL o BulkInsert


1) dbcc traceon(3604)
2) obtenga el object_id de la tabla: select object_id('tabla')
3) ejecute el comand dbcc log(id de tua database, -1, 'objid', el id de tu
tabla del paso 2)

en el resultado del comando en el 3 paso busca las líneas que tengan la
columna "Operation" como LOP_MODIFY_ROW. Para cada operacion de update, te
va a tirar 3 o mas líneas. La primera línea, el campo ROW DATA contiene el
dato anterior de cada columna cambiada em formato hexadecimal (para ver los
caracteres individuales use un select char(0xnumero)) y el campo Record Data
contiene toda la línea anterior.

Luego de decodificalo, trata de montar el Update Reverso.

Fijate en el www.portalsql.com el artículo que he escrito sobre el Log.

Suerte,

Sérgio Monteiro
"Jenny" wrote in message
news:
Hola a todos,
Hace un momento ejecute una Update en mi base de datos en el query
analyzer, el cual modifico registros que no debia, esto sucedio porque


hice
mi sentencia incorrectamente , saben si hay alguna forma de hacer un
rollback.

Gracias,

Jenny.


Respuesta Responder a este mensaje
#2 Maxi
08/07/2005 - 18:59 | Informe spam
Hola, si no nhas seteado el QA para que acepte transacciones implicitas, no
podras hacer el rollback


Salu2
Maxi


"Jenny" escribió en el mensaje
news:
Hola a todos,
Hace un momento ejecute una Update en mi base de datos en el query
analyzer, el cual modifico registros que no debia, esto sucedio porque
hice
mi sentencia incorrectamente , saben si hay alguna forma de hacer un
rollback.

Gracias,

Jenny.


Respuesta Responder a este mensaje
#3 Miguel Egea
08/07/2005 - 22:38 | Informe spam
Además de lo que te comenta sergio, que es viable (aunque muy complicado) y
partiendo de la misma premisa, de que tengas modos de recuperación full o
bulkinsert
puedes hacer lo siguiente
haz un backup del log.
restaura tu BBDD en otro server o en el mismo con otro nombre, restaura los
logs sucesivos hasta el momento del error con el modificador stop at
hay un artículo también en portalsql.com que se llama algo así como ¿se
puede recuperar un drop table? revisalo y te deseo mucha suerte.

Saludos
Miguel egea

"sergio" escribió:

Hmmm.. No hay manera de hacer rollback. Pero podes usar mas o menos lo
seguinte para recuperar los datos anteriores, si tu base de datos usa el
modo de recovery FULL o BulkInsert


1) dbcc traceon(3604)
2) obtenga el object_id de la tabla: select object_id('tabla')
3) ejecute el comand dbcc log(id de tua database, -1, 'objid', el id de tu
tabla del paso 2)

en el resultado del comando en el 3 paso busca las líneas que tengan la
columna "Operation" como LOP_MODIFY_ROW. Para cada operacion de update, te
va a tirar 3 o mas líneas. La primera línea, el campo ROW DATA contiene el
dato anterior de cada columna cambiada em formato hexadecimal (para ver los
caracteres individuales use un select char(0xnumero)) y el campo Record Data
contiene toda la línea anterior.

Luego de decodificalo, trata de montar el Update Reverso.

Fijate en el www.portalsql.com el artículo que he escrito sobre el Log.

Suerte,

Sérgio Monteiro
"Jenny" wrote in message
news:
> Hola a todos,
> Hace un momento ejecute una Update en mi base de datos en el query
> analyzer, el cual modifico registros que no debia, esto sucedio porque
hice
> mi sentencia incorrectamente , saben si hay alguna forma de hacer un
> rollback.
>
> Gracias,
>
> Jenny.
>
>



Respuesta Responder a este mensaje
#4 Cristian
09/07/2005 - 19:14 | Informe spam
Se que es tarde, pero :

Siempre realizo pongo Begin Transaction para ejecutar un Update si todo
esta bien commit , si no, roollback

Sorry.

Jenny escribió:

Hola a todos,
Hace un momento ejecute una Update en mi base de datos en el query
analyzer, el cual modifico registros que no debia, esto sucedio porque hice
mi sentencia incorrectamente , saben si hay alguna forma de hacer un
rollback.

Gracias,

Jenny.


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