我不知道从哪里开始或者这将如何工作,我希望有人有一个想法或一个行之有效的方法。
为了展示我正在尝试做的事情的示例,我创建了一个存储过程,它通过从链接表中获取记录来更新或插入本地表中的新记录。存储过程在 SQL Server 中作为作业运行以更新和插入新记录。
我的问题是:有没有办法查询本地表中的数据,所以最初我可以获取所有记录,但只能获取已插入的新记录或更新的旧记录?
我不想连续获取所有记录,只是添加新记录或更新记录。
这可能吗?
这是我创建的存储过程作为更新本地电话数据的示例:
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
这可能吗?
感谢大家!