2014-03-25 54 views
0

我試圖從鏈接的服務器使用合併插入記錄。該表只有兩列需要用來檢查新記錄。多列合併

MERGE dbo.[TableA] AS Target 
USING (SELECT [PERMNUM], [ABS_DATE] 
    FROM [Linked Server].[dbo].[TableA]) 
      AS source ([PERMNUM], [ABS_DATE] 
    ON (Target.[PERMNUM] = source.[PERMNUM] 
     AND Target.[ABS_DATE] = source.[ABS_DATE]) 
    WHEN NOT MATCHED THEN 
     INSERT ([PERMNUM], [ABS_DATE]) 
     VALUES (source.[PERMNUM], source.[ABS_DATE]); 

我收到以下錯誤消息。

Msg 156, Level 15, State 1, Line 6 
Incorrect syntax near the keyword 'ON'. 

如何在ON子句中使用兩個列?我已經看過其他的例子,並且據我所知,我的答案是正確的。

回答

3

那麼它看起來像我有一個缺少「)」

我固定的代碼,以便它現在是正確的:

SET NOCOUNT ON 
MERGE dbo.[PSPI_DAY_ABSENCES] AS Target 
USING (SELECT [PERMNUM], [ABS_DATE] 
    FROM [SQLPASS01].[PSPI].[dbo].[PSPI_DAY_ABSENCES]) 
      AS source ([PERMNUM], [ABS_DATE]) 
    ON Target.[PERMNUM] = source.[PERMNUM] AND Target.[ABS_DATE] = source.[ABS_DATE] 
    WHEN NOT MATCHED THEN 
     INSERT ([PERMNUM], [ABS_DATE]) 
     VALUES (source.[PERMNUM], source.[ABS_DATE]);