Sql server 与SQL Server中的多个匹配子句合并

Sql server 与SQL Server中的多个匹配子句合并,sql-server,Sql Server,我有两张桌子: 表1: Age Height Breed Name Owner Locality ------------------------------------------------------------- NULL NULL NULL Tom John Camac Street NULL NULL NULL Jos Lisa HighLin

我有两张桌子:

表1

Age     Height     Breed     Name      Owner     Locality
-------------------------------------------------------------
NULL    NULL       NULL      Tom       John      Camac Street
NULL    NULL       NULL      Jos       Lisa      HighLine
NULL    NULL       NULL      Kui       Hive      Wembley
NULL    NULL       NULL      Yor       Dave      Polis
Age     Height    Name      Owner     
----------------------------------
2       1.6       Tom       John      
3       1.9       Jos       Lisa   
1       1.3       Yor       Dave
1       1.1       Tom       Roy  
表2

Age     Height     Breed     Name      Owner     Locality
-------------------------------------------------------------
NULL    NULL       NULL      Tom       John      Camac Street
NULL    NULL       NULL      Jos       Lisa      HighLine
NULL    NULL       NULL      Kui       Hive      Wembley
NULL    NULL       NULL      Yor       Dave      Polis
Age     Height    Name      Owner     
----------------------------------
2       1.6       Tom       John      
3       1.9       Jos       Lisa   
1       1.3       Yor       Dave
1       1.1       Tom       Roy  
我尝试以这种方式使用合并:

MERGE INTO table1  T
USING (SELECT * from table2) S ON T.Name = S.Name AND T.Owner = S.Owner

WHEN MATCHED
    UPDATE 
        SET Age = S.Age, 
            Height = S.Height;
但我相信我不能用and子句和ON子句


请告诉我如何合并这两个表。

您可以在
ON
子句中使用多个连接条件

您的语法应该是:

MERGE INTO table1 AS T
USING table2 AS S
  ON T.Name = S.Name
  AND T.Owner = S.Owner
WHEN MATCHED THEN
UPDATE 
  SET T.Age = S.Age, 
      T.Height = S.Height;
但我强烈建议你读亚伦·伯特兰的文章