No tengo ni idea de dónde empezar o cómo funcionará, y espero que alguien tenga una idea o un método comprobado.Cómo crear una consulta que obtiene solo los datos que se han actualizado en una tabla
Para mostrar un ejemplo de lo que intento hacer, creé un procedimiento almacenado que ACTUALIZA o INSERTA registros nuevos en una tabla local obteniendo registros de una tabla de enlaces. El procedimiento almacenado se ejecuta como un trabajo en SQL Server para actualizar e insertar nuevos registros.
Mi pregunta es: ¿hay alguna manera de consultar los datos en la tabla local para que inicialmente pueda obtener todos los registros pero solo obtener los nuevos registros que se han insertado o los registros antiguos que se actualizan?
No deseo obtener continuamente todos los registros, solo los nuevos registros agregados o los registros actualizados.
¿Esto es posible?
Aquí es el procedimiento almacenado I AVE creado como un ejemplo para la actualización de datos de teléfono local:
CREATE PROCEDURE sp_UPDATE_PHONE_RECORDS
AS
BEGIN
MERGE dbo.PHONE_REC AS Target
USING (SELECT MEMBER_ID
,HOME_PHONE = dbo.udf_StdPhoneFmt(HOME)
,CELL_PHONE = dbo.udf_StdPhoneFmt(CELL)
,WORK_PHONE = dbo.udf_StdPhoneFmt(WORK)
FROM PHONE WHERE MEMBER_ID IS NOT NULL) AS SOURCE
ON (Target.MEMBER_ID = SOURCE.MEMBER_ID)
WHEN MATCHED THEN
UPDATE SET Target.HOME_PHONE = Source.HOME_PHONE,Target.CELL_PHONE = Source.CELL_PHONE,
Target.WORK_PHONE = Source.WORK_PHONE
WHEN NOT MATCHED BY TARGET THEN
INSERT (MEMBER_ID, HOME_PHONE, CELL_PHONE ,WORK_PHONE)
VALUES (Source.MEMBER_ID, Source.HOME_PHONE, Source.CELL_PHONE, Source.WORK_PHONE);
END
GO
Es esto posible?
¡Gracias a todos!
Se siente como [ La replicación de SQL Server] (http://msdn.microsoft.com/en-us/library/ms151198.aspx) es la herramienta adecuada para este –