Microsoft SQL Server 2000 mantiene la coherencia y la integridad de cada base de
datos a pesar de los errores que puedan tener lugar en el sistema. ada aplicaci!n que actuali"a los datos en una base de datos de SQL Server lo hace mediante transacciones. #na transacci!n es una unidad l!gica de traba$o formada por un con$unto de instrucciones %selecciones& inserciones& actuali"aciones o eliminaciones'. Si no hay errores durante una transacci!n& todas las modificaciones llevadas a cabo en la misma se convierten en parte permanente de la base de datos. Si se producen errores& no se reali"a ninguna modificaci!n en la base de datos. #na transacci!n pasa por varias fases( )ntes de que se inicie la transacci!n& la base de datos est* en un estado coherente. La aplicaci!n indica el inicio de la transacci!n. +sto puede reali"arse e,pl-citamente con la instrucci!n .+/01 23)1S)2041. 5e manera alternativa& la aplicaci!n puede definir opciones para e$ecutar en modo de transacci!n impl-cita6 la primera instrucci!n 2ransact7SQL e$ecutada despu8s de finali"ar una transacci!n anterior inicia una nueva transacci!n autom*ticamente. uando se inicia la transacci!n& no se escribe nada en el registro6 la primera entrada del registro se escribe cuando la aplicaci!n genera la primera entrada del registro para una modificaci!n de datos. La aplicaci!n comien"a a modificar los datos. +stas modificaciones se reali"an en una tabla cada ve". 5ebido a que se reali"an varias modificaciones& 8stas pueden de$ar temporalmente la base de datos en un estado intermedio incoherente. uando la aplicaci!n alcan"a un punto donde todas las modificaciones se han completado correctamente y la base de datos es de nuevo coherente& la aplicaci!n confirma la transacci!n. +sto hace que todas las modificaciones sean una parte permanente de la base de datos. Si la aplicaci!n encuentra un error que impide completar la transacci!n& deshace todas las modificaciones de datos. +sto devuelve a la base de datos al punto de coherencia en que se encontraba antes de que se iniciase la transacci!n. Las aplicaciones SQL Server tambi8n pueden e$ecutarse en modo de confirmaci!n autom*tica. +n el modo de confirmaci!n autom*tica& cada instrucci!n 2ransact7SQL individual se confirma autom*ticamente si es correcta y se deshace si genera un error. #na aplicaci!n no tiene por qu8 e$ecutarse en modo de confirmaci!n autom*tica para emitir las instrucciones que inician o finali"an espec-ficamente una transacci!n. 2odas las instrucciones 2ransact7SQL se e$ecutan en una transacci!n( una transacci!n e,pl-cita& una transacci!n impl-cita o una transacci!n de confirmaci!n autom*tica. 2odas las transacciones de SQL Server que incluyen modificaciones de datos alcan"an un punto de coherencia y se confirman& o se deshacen hasta el punto de coherencia inicial. Las transacciones no se de$an en un estado intermedio en que la base de datos no sea coherente. Observaciones .+/01 23)1S)2041 representa un punto en el que los datos a los que hace referencia una cone,i!n son l!gica y f-sicamente coherentes. Si se producen errores& se pueden deshacer todas las modificaciones reali"adas en los datos despu8s de .+/01 23)1S)2041 para devolver los datos al estado conocido de coherencia. ada transacci!n dura hasta que se completa sin errores y se emite 4MM02 23)1S)2041 para hacer que las modificaciones sean una parte permanente de la base de datos& o hasta que se producen errores y se borran todas las modificaciones con la instrucci!n 34LL.)9 23)1S)2041. .+/01 23)1S)2041 inicia una transacci!n local para la cone,i!n que emite la instrucci!n. Seg:n la configuraci!n del nivel de aislamiento de la transacci!n actual& la transacci!n bloquea muchos recursos adquiridos para aceptar las instrucciones 2ransact7 SQL que emite la cone,i!n hasta que finali"a con una instrucci!n 4MM02 23)1S)2041 o 34LL.)9 23)1S)2041. Las transacciones que quedan pendientes durante mucho tiempo pueden impedir que otros usuarios tengan acceso a estos recursos compartidos. )unque .+/01 23)1S)2041 inicia una transacci!n local& 8sta no se guardar* en el registro de transacciones %log' hasta que la aplicaci!n realice posteriormente una acci!n que se deba grabar en el registro& como la e$ecuci!n de una instrucci!n 01S+32& #;5)2+ o 5+L+2+. #na aplicaci!n puede reali"ar acciones como& por e$emplo& adquirir bloqueos para proteger el nivel de aislamiento de transacciones de instrucciones S+L+2& pero no se guarda ning:n dato en el registro hasta que la aplicaci!n reali"a una acci!n.