Crear historia de cambios en una tabla
Publicado por Santiago (1 intervención) el 28/04/2006 20:29:25
Hola a todos:
Quisiera tener la historia de los cambios hechos sobre una tabla t1
donde solo pueden variar 2 campos (c1 y c2) por ejemplo:
create table t1 (idt int IDENTITY(1,1) PRIMARY KEY,nt varchar(50),c1
int,c2 int)
lo primero que se me ocurre es crear otra tabla t1s con la sgte extructura:
create table t1s (idt int, c1 int, c2 int, fecha smalldatetime
default getdate())
y en la tabla t1 programarle un trigger
CREATE TRIGGER cambia ON [dbo].[t1]
FOR update
AS
if update(c1) or update(c2)
insert into t1s
select idt,c1,c2 from deleted
ahora si quisiera saber el estado de la tabla t1 hasta la actualidad basta
select * from t1
pero si quisiera saber el estado hace una semana ¿ cómo sería ?
o alguien tiene una mejor idea ?
en este caso se me ocurre si hago mas de un cambio en un articulo el
mismo día no se como resolverlo pues entonces me aparecerian en t1s
los dos el mismo día y en el caso de que borre el artículo que hacer
crear otra tabla para los articulos borrados ?
En fin agradeceria cualquier ayuda
Santiago
Trabajo SQL Server 2000
Quisiera tener la historia de los cambios hechos sobre una tabla t1
donde solo pueden variar 2 campos (c1 y c2) por ejemplo:
create table t1 (idt int IDENTITY(1,1) PRIMARY KEY,nt varchar(50),c1
int,c2 int)
lo primero que se me ocurre es crear otra tabla t1s con la sgte extructura:
create table t1s (idt int, c1 int, c2 int, fecha smalldatetime
default getdate())
y en la tabla t1 programarle un trigger
CREATE TRIGGER cambia ON [dbo].[t1]
FOR update
AS
if update(c1) or update(c2)
insert into t1s
select idt,c1,c2 from deleted
ahora si quisiera saber el estado de la tabla t1 hasta la actualidad basta
select * from t1
pero si quisiera saber el estado hace una semana ¿ cómo sería ?
o alguien tiene una mejor idea ?
en este caso se me ocurre si hago mas de un cambio en un articulo el
mismo día no se como resolverlo pues entonces me aparecerian en t1s
los dos el mismo día y en el caso de que borre el artículo que hacer
crear otra tabla para los articulos borrados ?
En fin agradeceria cualquier ayuda
Santiago
Trabajo SQL Server 2000
Valora esta pregunta


0