Dudas con UPDATE

01/12/2006 - 09:23 por Antonio Liberal | Informe spam
Hola buenas.

Tengo una serie de dudas con el UPDATE. He leido los BOL, pero creo que me
he quedado a un peor.

Si falla la actualización de una fila, ¿el resto se actualiza?
Si se va la luz o hay algún tipo de problema, ¿la instrucción se queda a
medias?

En definitiva, quiero saber si la instrucción es atómica o no.

Gracias y un saludo.

Preguntas similare

Leer las respuestas

#1 Carlos Sacristán
01/12/2006 - 09:36 | Informe spam
Si falla la actualización de una fila, ¿el resto se actualiza?


Tendrías que definir un poco más la situación: ¿estás ejecutando una
única instrucción UPDATE que actualiza varias filas? ¿un batch que ejecuta
varias instrucciones UPDATE? ...

Si te refieres a lo primero (intuyo que es eso), la respuesta es no:
todas las instrucciones UPDATE, INSERT, DELETE son atómicas en sí mismas

Si se va la luz o hay algún tipo de problema, ¿la instrucción se queda a
medias?


No, nunca se va a "quedar a medias": si no se ha confirmado se cancelará


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Antonio Liberal" escribió en
el mensaje news:uZU4%
Hola buenas.

Tengo una serie de dudas con el UPDATE. He leido los BOL, pero creo que me
he quedado a un peor.

Si falla la actualización de una fila, ¿el resto se actualiza?
Si se va la luz o hay algún tipo de problema, ¿la instrucción se queda a
medias?

En definitiva, quiero saber si la instrucción es atómica o no.

Gracias y un saludo.


Respuesta Responder a este mensaje
#2 Antonio Liberal
01/12/2006 - 09:47 | Informe spam
Hola Carlos, gracias por responder.

Es una única instrucción UPDATE. Si tengo varias instrucciones si que
utilizo transacciones.

Suponía que eran atómicas, pero quería confirmarlo antes de poner un
BEGINTRANS antes y un COMMIT después.

Por que supongo que si la tabla que se está updatando tiene un trigger, y
este afecta a otra tabla, y hay un problema, todo se quedará como estaba
es decir, la segunda tabla también quedará inalterada...

De todas formas he probado a hace un SELECT INTO masivo (de varios miles de
registros) dentro de una base de pruebas con un tamaño de archivo fijo, y se
ve que funciona de manera atómica.

Un saludo.

"Carlos Sacristán" <csacristanARROBAmvpsPUNTOorg> escribió en el mensaje
news:
> Si falla la actualización de una fila, ¿el resto se actualiza?
Tendrías que definir un poco más la situación: ¿estás ejecutando una
única instrucción UPDATE que actualiza varias filas? ¿un batch que ejecuta
varias instrucciones UPDATE? ...

Si te refieres a lo primero (intuyo que es eso), la respuesta es no:
todas las instrucciones UPDATE, INSERT, DELETE son atómicas en sí mismas

> Si se va la luz o hay algún tipo de problema, ¿la instrucción se queda a
> medias?
No, nunca se va a "quedar a medias": si no se ha confirmado se


cancelará


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Antonio Liberal" escribió


en
el mensaje news:uZU4%
> Hola buenas.
>
> Tengo una serie de dudas con el UPDATE. He leido los BOL, pero creo que


me
> he quedado a un peor.
>
> Si falla la actualización de una fila, ¿el resto se actualiza?
> Si se va la luz o hay algún tipo de problema, ¿la instrucción se queda a
> medias?
>
> En definitiva, quiero saber si la instrucción es atómica o no.
>
> Gracias y un saludo.
>
>


Respuesta Responder a este mensaje
#3 Miguel egea
01/12/2006 - 12:19 | Informe spam
Si, hay transacciones implícitas, de hecho si en tu trigger ejecutas select
@@trancount veras que vale 1

Saludos
Miguel Egea
"Antonio Liberal" wrote in
message news:
Hola Carlos, gracias por responder.

Es una única instrucción UPDATE. Si tengo varias instrucciones si que
utilizo transacciones.

Suponía que eran atómicas, pero quería confirmarlo antes de poner un
BEGINTRANS antes y un COMMIT después.

Por que supongo que si la tabla que se está updatando tiene un trigger, y
este afecta a otra tabla, y hay un problema, todo se quedará como
estaba
es decir, la segunda tabla también quedará inalterada...

De todas formas he probado a hace un SELECT INTO masivo (de varios miles
de
registros) dentro de una base de pruebas con un tamaño de archivo fijo, y
se
ve que funciona de manera atómica.

Un saludo.

"Carlos Sacristán" <csacristanARROBAmvpsPUNTOorg> escribió en el mensaje
news:
> Si falla la actualización de una fila, ¿el resto se actualiza?
Tendrías que definir un poco más la situación: ¿estás ejecutando una
única instrucción UPDATE que actualiza varias filas? ¿un batch que
ejecuta
varias instrucciones UPDATE? ...

Si te refieres a lo primero (intuyo que es eso), la respuesta es no:
todas las instrucciones UPDATE, INSERT, DELETE son atómicas en sí mismas

> Si se va la luz o hay algún tipo de problema, ¿la instrucción se queda
> a
> medias?
No, nunca se va a "quedar a medias": si no se ha confirmado se


cancelará


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Antonio Liberal" escribió


en
el mensaje news:uZU4%
> Hola buenas.
>
> Tengo una serie de dudas con el UPDATE. He leido los BOL, pero creo que


me
> he quedado a un peor.
>
> Si falla la actualización de una fila, ¿el resto se actualiza?
> Si se va la luz o hay algún tipo de problema, ¿la instrucción se queda
> a
> medias?
>
> En definitiva, quiero saber si la instrucción es atómica o no.
>
> Gracias y un saludo.
>
>






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