Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
若数据库中存在要更新的数据,则应在SQL Server中插入新记录_Sql_Database_Sql Server 2012_Automation - Fatal编程技术网

若数据库中存在要更新的数据,则应在SQL Server中插入新记录

若数据库中存在要更新的数据,则应在SQL Server中插入新记录,sql,database,sql-server-2012,automation,Sql,Database,Sql Server 2012,Automation,我创建了一个insert语句,以便在数据不存在时将数据添加到DB中 插入SampleListSampleId、类型、说明 选择编号样本ID、编号类型、编号描述 从值1、'A'、'AA', 2、'B'、'BB', 3、'C'、'CC', 4、'D'、'DD' AS nr样本ID、类型、描述 在cr.SampleId=nr.SampleId上左连接采样列表cr 其中cr.SampleId为NULL 但是如果数据库中存在数据,我还想更新这些行 您能帮我吗?您可以使用合并: 但是,您可以仅使用值简化子查

我创建了一个insert语句,以便在数据不存在时将数据添加到DB中

插入SampleListSampleId、类型、说明 选择编号样本ID、编号类型、编号描述 从值1、'A'、'AA', 2、'B'、'BB', 3、'C'、'CC', 4、'D'、'DD' AS nr样本ID、类型、描述 在cr.SampleId=nr.SampleId上左连接采样列表cr 其中cr.SampleId为NULL 但是如果数据库中存在数据,我还想更新这些行

您能帮我吗?

您可以使用合并:

但是,您可以仅使用值简化子查询:

您可以使用“合并”:

但是,您可以仅使用值简化子查询:


这被称为一次尝试。你能告诉我们你在这个问题上的尝试吗?不起作用的意思是什么?从值1、'A'、'AA',2、'B'、'BB',3、'C'、'CC',4、'D'、'DD'中选择nr.SampleId、nr.Type、nr.Description作为nr-SampleId、Type合并样本列表cr,匹配时cr.SampleId=nr.SampleId上的说明,然后更新设置cr.Type=nr.Type,cr.Description=nr.Description,如果目标不匹配,则插入SampleId,Type,说明值nr.SampleId,nr.Type,nr.Descriptionabove命令显示一个语法错误:关键字“ON”附近的语法不正确。这称为尝试此操作。你能告诉我们你在这个问题上的尝试吗?不起作用的意思是什么?从值1、'A'、'AA',2、'B'、'BB',3、'C'、'CC',4、'D'、'DD'中选择nr.SampleId、nr.Type、nr.Description作为nr-SampleId、Type合并样本列表cr,匹配时cr.SampleId=nr.SampleId上的说明,然后更新设置cr.Type=nr.Type,cr.Description=nr.Description,如果目标不匹配,则插入SampleId,Type,说明值nr.SampleId,nr.Type,nr.description上述命令显示一个语法错误:关键字“ON”附近的语法不正确。非常感谢。这是预期的功能。你让我很开心,非常感谢。这是预期的功能。你让我开心
MERGE SampleList cr 
USING (SELECT nr.SampleId, nr.[Type], nr.[Description] 
       FROM (VALUES (1,'A','AA'), (2,'B','BB'), (3,'C','CC'), (4,'D','DD') 
                  ) as nr (SampleId, [Type], [Description])
      ) AS nr -- Use missed alias
       ON (cr.SampleId = a.SampleId) 
WHEN MATCHED THEN 
     UPDATE SET cr.[Type] = nr.[Type], cr.[Description] = nr.[Description] 
WHEN NOT MATCHED BY TARGET THEN 
     INSERT (SampleId, [Type], [Description]) 
        VALUES (nr.SampleId, nr.[Type], nr.[Description]); -- to terminate the merge
MERGE SampleList cr 
USING ( VALUES (1,'A','AA'), (2,'B','BB'), (3,'C','CC'), (4,'D','DD') 
      ) AS nr(SampleId, [Type], [Description]) 
      ON (cr.SampleId = a.SampleId)
WHEN MATCHED THEN 
     UPDATE SET cr.[Type] = nr.[Type], cr.[Description] = nr.[Description] 
WHEN NOT MATCHED BY TARGET THEN 
     INSERT (SampleId, [Type], [Description]) 
        VALUES (nr.SampleId, nr.[Type], nr.[Description]); -- to terminate the merge