Está en la página 1de 6

Bitcoras

Cada registro de la bitcora


escribe una nica escritura de
base de datos y tiene lo siguiente
Nombre de la transaccin : Nombre de la transaccin que realiz la
operacin de escritura.
Nombre del dato : El nombre nico del dato escrito.
Valor antiguo : El valor del dato antes de la escritura.
Valor nuevo : El valor que tendr el dato despus de la escritura.
Existen otros registros de bitcora
especiales para grabar sucesos
importantes durante el proceso de
transaccin tales como :
< T1, inicio >
< T1, x, v1, v2 >
< T1, commit >
Es fundamental que siempre se cree un registro en la bitcora
cuando se realice una escritura antes de que se modifique la base
de datos.
Tambin tenemos la posibilidad de deshacer una modificacin que
ya se ha escrito en la base de datos, esto se realizar usando el
campo del valor antiguo de los registros de la bitcora.
Los registros de la bitcora deben residir en memoria estable como
resultado el volumen de datos en la bitcora puede ser
exageradamente grande.
CREATE TABLE [dbo].[Bitacora] (
[BitacoraID] [int] IDENTITY (1, 1) NOT NULL ,
[EventType] [char] (14) NOT NULL ,
[Status] [int] NOT NULL ,
[EventInfo] [varchar] (1000) NOT NULL ,
[Usuario] [varchar] (20) NOT NULL ,
[Fecha] [smalldatetime] NOT NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Bitacora] WITH NOCHECK ADD
CONSTRAINT [DF_Bitacora_Usuario] DEFAULT (suser_sname()) FOR
[Usuario],
CONSTRAINT [DF_Bitacora_Fecha] DEFAULT (getdate()) FOR [Fecha]
CREATE TRIGGER trig_tablabitacora
ON TABLA
FOR DELETE, INSERT, UPDATE
AS
BEGIN
DECLARE @NUMERO INT
INSERT INTO Bitacora (EventType,Status,EventInfo)
exec sp_executesql NDBCC INPUTBUFFER( @i ), N@i int,
@i=@@spid
END

También podría gustarte