Transacciones

02/02/2008 - 01:01 por Omar | Informe spam
Hola que tal, solo una pregunta:

Es necesario o recomendable para efectos de integridad encapsular una
solo una sentencia INSERT, UPDATE o DELETE

o solo en necesario poner transacciones cuando se usen 2 o mas
sentencias de este tipo.

Gracias.

Preguntas similare

Leer las respuestas

#6 Alejandro Mesa
02/02/2008 - 16:03 | Informe spam
Oasis,

Es preferible devolver valores usando parametros de salida, al menos que
desee devolver mas de una fila. Por ejemplo, si usamos ADO.NET, es preferible
usar command.ExecuteScalar para traer un valor y no command.ExecuteReader. Lo
mismo cuando se ejecuta una instruccion INSERT, UPDATE, DELETE o SET, y se
desea devolver algun valor, es preferible usar command.ExecuteNonQuery.

Best Practices for Using ADO.NET
http://msdn2.microsoft.com/en-us/li...71481.aspx


AMB


"Oasis" wrote:

Muchas gracias por aclarar mis dudas respecto a lo de transacciones,
pero ahora tengo otra, es recomendable regresar valores en un parámtro
de salida de un procedimiento almacenado? no se regresarian muchos
datos, a lo mas tres valores por SP

Gracias y ojalá no sean muchas preguntas y perdón por la ignorancia,
pero me interesa mucho lo referente a la integridad de los datos y el
performance de mis consultas, de hecho si me pudieran pasar algún texto
de referencia al respecto se los agradecería mucho.

Muchas gracias.

Alejandro Mesa escribió:
> Omar,
>
>> Cuando tengo 2 intrucciones DML en un IF,una esta dentro del IF y la
>> otra dentro del ELSE, aqui si es necesario poner una transaccin o no?
>
> No
>
> Solo una de ellas se ejecutara.
>
>> Otra pregunta, tengo un SP que utiliza un cursor (yo se que no es
>> recomendable usar cursores pero en este caso no habia de otra mas que
>> usarlo), volviendo a la pregunta aqui si es recomendable usar una
>> transaccion que englobe al cursor?
>
> Depende de lo que estes haciendo dentro de el cursor.
>
> Para que tengas una mejor idea, piensa como se debe manejar una transaccion
> en un banco, si sacas un monto de dinero de tu cuenta de ahorros y lo pones
> en tu cuenta de cheques. La transaccion como un todo (saca de una cuenta y
> pon el dinero en la otra) incluye mas de una accion, pero el conjunto de las
> acciones debe tomarse como una transaccion, o falla y no afecta ninguna de
> las cuentas o se completa y actualiza ambas cuentas. La extraccion es una
> sentencia DML y el deposito en la de cheques es otra DML, asi que para que
> ambas DML se tomen como un todo, estas deben encerrance en una transaccion.
>
> begin transaction
>
> - sacar la plata de la cuenta de ahorros
> - depositar la plata en la cta de cheques
>
> commit transaction
>
> Si vas a hacer solo un deposito, o solo vas a extraer dinero para llevar
> encima, entonces la transaccion incluye solo una accion y como cada sentencia
> DML es atomica, osea SQL Server hace commit de esta si no falla o hace
> rollback si falla.
>
>
> AMB
>
> "Omar" wrote:
>
>> Ok, entendido.
>>
>> Entonces ahora tengo otra pregunta
>>
>> Cuando tengo 2 intrucciones DML en un IF,una esta dentro del IF y la
>> otra dentro del ELSE, aqui si es necesario poner una transaccin o no?
>>
>> Otra pregunta, tengo un SP que utiliza un cursor (yo se que no es
>> recomendable usar cursores pero en este caso no habia de otra mas que
>> usarlo), volviendo a la pregunta aqui si es recomendable usar una
>> transaccion que englobe al cursor?
>>
>> Gracias.
>>
>>
>>
>> Alejandro Mesa escribió:
>>> Omar,
>>>
>>> Cuando la transaccion incluye mas una sentencia DML.
>>>
>>> Toda sentencia DML es atomica, o todo o nada, por eso no es necesario crear
>>> una transaccion explicita cuando la transaccion incluye una unica sentencia
>>> DML.
>>>
>>>
>>> AMB
>>>
>>>
>>> "Omar" wrote:
>>>
>>>> Hola que tal, solo una pregunta:
>>>>
>>>> Es necesario o recomendable para efectos de integridad encapsular una
>>>> solo una sentencia INSERT, UPDATE o DELETE
>>>>
>>>> o solo en necesario poner transacciones cuando se usen 2 o mas
>>>> sentencias de este tipo.
>>>>
>>>> Gracias.
>>>>

Respuesta Responder a este mensaje
#7 Luis Tarzia
03/02/2008 - 21:44 | Informe spam
Depende, un solo update puede fallar pero haber modificado otras cosas y ahi
que haces si no tenes una transaccion para volver atras ???
"Omar" escribió en el mensaje
news:u1FLo#
Hola que tal, solo una pregunta:

Es necesario o recomendable para efectos de integridad encapsular una
solo una sentencia INSERT, UPDATE o DELETE

o solo en necesario poner transacciones cuando se usen 2 o mas
sentencias de este tipo.

Gracias.
Respuesta Responder a este mensaje
#8 Fernando Mosquera Catarecha
28/02/2008 - 15:04 | Informe spam
Como andas lucho!!!!, espero que andes bien.

Consulta respecto a lo que contestaste: en que caso un solo update puede
fallar pero haber modificado otras cosas?

Un update es una transacción implícita, no debería hacer rollback de todas
las modificaciones en caso de fallar?





Saludos,

Fernando.


"Luis Tarzia" wrote in message
news:%
Depende, un solo update puede fallar pero haber modificado otras cosas y
ahi
que haces si no tenes una transaccion para volver atras ???
"Omar" escribió en el mensaje
news:u1FLo#
Hola que tal, solo una pregunta:

Es necesario o recomendable para efectos de integridad encapsular una
solo una sentencia INSERT, UPDATE o DELETE

o solo en necesario poner transacciones cuando se usen 2 o mas
sentencias de este tipo.

Gracias.




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