Está en la página 1de 2

Qué es una transacción?

Las transacciones en SQL son unidades o secuencias de trabajo realizadas de forma


ordenada y separada en una base de datos. Normalmente representan cualquier
cambio en la base de datos, y tienen dos objetivos principales:

Proporcionar secuencias de trabajo fiables que permitan poder recuperarse fácilmente


ante errores y mantener una base de datos consistente incluso frente a fallos del
sistema. Proporcionar aislamiento entre programas accediendo a la vez a la base de
datos.

Una transacción es una propagación de uno o más cambios en la base de datos, ya


sea cuando se crea, se modifica o se elimina un registro. En la práctica suele consistir
en la agrupación de consultas SQL y su ejecución como parte de una transacción.

¿Para qué sirve la instrucción BEGIN TRANSACTION?

Begin Transaction Marca el punto de inicio de una transacción local explícita. Las
transacciones explícitas empiezan con la instrucción BEGIN TRANSACTION y acaban
con la instrucción COMMIT o ROLLBACK.

Rollback Transaction Revierte una transacción explícita o implícita hasta el inicio de la


transacción o hasta un punto de retorno dentro de la transacción.

¿Para qué sirve poner SET IMPLICIT_TRANSACTIONS OFF?

Cuando está en OFF, cada una de las instrucciones T-SQL anteriores está limitada por
una instrucción BEGIN TRANSACTION y una instrucción COMMIT TRANSACTION
invisible. Cuando está APAGADO, decimos que el modo de transacción es
autocommit. Si su código T-SQL emite visiblemente BEGIN TRANSACTION, decimos
que el modo de transacción es explícito.

¿Para qué sirve poner SET IMPLICIT_TRANSACTIONS ON?

IMPLICIT_TRANSACTIONS ON no es popular. En la mayoría de los casos en los que


IMPLICIT_TRANSACTIONS está activado, se debe a que se ha elegido SET
ANSI_DEFAULTS ON. El proveedor OLE DB de SQL Server Native Client para SQL
Server y el controlador ODBC de SQL Server Native Client establecen
automáticamente IMPLICIT_TRANSACTIONS en OFF al conectarse.

SET IMPLICIT_TRANSACTIONS está predeterminado en OFF para conexiones con el


proveedor administrado de SQLClient y para solicitudes SOAP recibidas a través de
puntos finales HTTP.

Para ver la configuración actual de IMPLICIT_TRANSACTIONS, ejecute la siguiente


consulta:

DECLARE @IMPLICIT_TRANSACTIONS VARCHAR(3) = 'OFF';  


IF ( (2 & @@OPTIONS) = 2 ) SET @IMPLICIT_TRANSACTIONS = 'ON';  
SELECT @IMPLICIT_TRANSACTIONS AS IMPLICIT_TRANSACTIONS;

También podría gustarte