0
我能夠執行我的存儲過程。當我再次執行它而不是更新現有值時,將從源中插入相同的值作爲新值。將數據類型轉換合併存儲過程
即我的目標有
1
2
3
當我運行存儲過程第二次,而不是更新1,2,3,這是對於插入時相同
1
2
3
1
2
3
我的狀態匹配,然後選擇S.REPORT_TEST1,除了T.REPORT_TEST1不起作用。
當我在不具有數據轉換的不同表上使用相同的代碼時,我可以更新。
任何人都可以告訴我哪裏錯了嗎?
CREATE PROCEDURE [dbo].[Merge]
INSERT INTO .[dbo].[TARGET](REPORT_TEST1, REPORT_TEST2, REPOST_TEST3)
FROM (MERGE [dbo].[TARGET] T
USING (SELECT
Cast([REPORT TEST1] as int) [REPORT_TEST1],
Cast([REPORT TEST2] as int) [REPORT_TEST2],
Cast([REPORT TEST3] as int) [REPORT_TEST3]
FROM
[dbo].[SOURCE]) S ON (T.[REPORT_TEST1] = S.[REPORT_TEST1])
WHEN NOT MATCHED BY TARGET
THEN INSERT
VALUES (S.REPORT_TEST1, S.REPORT_TEST2, S.REPOST_TEST3)
WHEN MATCHED
AND EXISTS (SELECT S.REPORT_TEST1, S.REPORT_TEST2, S.REPOST_TEST3
EXCEPT
SELECT T.REPORT_TEST1, T.REPORT_TEST2, T.REPOST_TEST3)
OUTPUT $ACTION ACTION_OUT,
S.REPORT_TEST1, S.REPORT_TEST2, S.REPOST_TEST3) ;
感謝
感謝您的回覆。 – Durga
除了在合併工作,但'當不符合目標然後插入'插入重複。 – Durga