どこから始めればよいのか、これがどのように機能するのかわかりません。誰かがアイデアや実績のある方法を持っていることを願っています.
私がやろうとしていることの例を示すために、リンク テーブルからレコードを取得してローカル テーブルの新しいレコードを更新または挿入するストアド プロシージャを作成しました。ストアド プロシージャは、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
これは可能ですか?
みんな、ありがとう!