Sql 在多个列上合并

Sql 在多个列上合并,sql,sql-server,tsql,Sql,Sql Server,Tsql,我正在尝试使用“合并”从链接服务器插入记录。该表只有两列,这两列都需要用于检查新记录 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] AN

我正在尝试使用“合并”从链接服务器插入记录。该表只有两列,这两列都需要用于检查新记录

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子句中同时使用这两列?我看过其他的例子,据我所知,我是正确的

看来我少了一个“')”

我修复了代码,因此它现在是正确的:

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]);