Sql server 使用联接条件更新表

Sql server 使用联接条件更新表,sql-server,tsql,ssis,Sql Server,Tsql,Ssis,我有下面的场景 Table A // Dev ID NAME Address Table A // Prod ID NAME Address 从Dev中删除时,我需要检查它是否存在于prod中,如果存在,那么我需要从prod中恢复它的值,并删除所有在prod中不存在的值。有关于此的SQL帮助吗?有人可以建议查询吗?如果两个数据库位于同一实例中,则可以尝试以下查询: --update query update d set d.name = p.name, d.address

我有下面的场景

 Table A // Dev
 ID
 NAME
 Address

 Table A  // Prod
 ID
 NAME
 Address

从Dev中删除时,我需要检查它是否存在于prod中,如果存在,那么我需要从prod中恢复它的值,并删除所有在prod中不存在的值。有关于此的SQL帮助吗?有人可以建议查询吗?

如果两个数据库位于同一实例中,则可以尝试以下查询:

--update query
update d set d.name = p.name, d.address = p.address
from dev.dbo.tableA d 
        join prod.dbo.tableA p on d.id = p.id

--delete query
delete dev.dbo.tableA
where id not in (select id from prod.dbo.tableA)
您应该使用查找

1.来源将是你的发展

2.拖动查找并编写查询以从生产表中获取ID。在查找中匹配源和生产中的ID,并从生产中以及生产中的其他列中选择ID

3.拖动OLedb命令并编写查询以更新开发人员

 update d set d.Col1 = ?, d.Col2 =?
  from dev.tableA d 
  where d.id = ?
4.类似地编写删除查询,并映射从查找中选择的列

  delete from dev.tableA
  where id <> ?
从dev.tableA中删除
身份证在哪里?

注意:Oleb命令针对每一行执行。因此,如果行太多,则执行速度会很慢。如果性能是一个主要问题,那么您可以在查找后将所有数据转储到开发服务器中的表中,然后在执行SQL任务中使用语法执行更新和删除操作

谢谢,如果两者都在不同的服务器上,您能否建议SSIS如何处理此项工作?我不是SSIS方面的专家,但如果您使用
数据导入和导出向导
,您应该能够选择数据库服务器,然后选择
编写查询以指定要传输的数据
选项。最后,您应该能够将其保存为SSIS包。