Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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 如何使用单独数据库中另一个表的数据更新一个表?_Sql_Database_Sql Update - Fatal编程技术网

Sql 如何使用单独数据库中另一个表的数据更新一个表?

Sql 如何使用单独数据库中另一个表的数据更新一个表?,sql,database,sql-update,Sql,Database,Sql Update,可能重复: 这里没有极端的SQL。我有两个数据库(数据库1、数据库2)。每个数据库都有相同的表。我想用Database1中的TableA数据更新Database2中的TableA(Database1,TableA->Database2,TableA) 这样做的最佳方式是什么?假设您使用的是dbo模式 insert into Database2.dbo.TableA (column1, column2, etc) select column1, column2, etc from Databas

可能重复:

这里没有极端的SQL。我有两个数据库(数据库1、数据库2)。每个数据库都有相同的表。我想用Database1中的TableA数据更新Database2中的TableA(Database1,TableA->Database2,TableA)


这样做的最佳方式是什么?

假设您使用的是
dbo
模式

insert into Database2.dbo.TableA (column1, column2, etc)
select column1, column2, etc
from Database1.dbo.TableA
如果传入的数据应该覆盖旧的数据,或者您使用的是标识字段,那么您可能希望首先
截断Database2.dbo.TableA


如果需要表中的ID完全相同,则应在运行脚本之前禁用
Database2.dbo.Table
上的identity属性,然后重新启用该属性。

类似这样,假设使用的是
dbo
架构

insert into Database2.dbo.TableA (column1, column2, etc)
select column1, column2, etc
from Database1.dbo.TableA
如果传入的数据应该覆盖旧的数据,或者您使用的是标识字段,那么您可能希望首先
截断Database2.dbo.TableA


如果需要表中的ID完全相同,则应在运行脚本之前禁用
Database2.dbo.Table上的identity属性,然后重新启用该属性。

如果将此作为一次性数据同步执行,右键单击特定数据库时,SQL Server在“任务”选项下提供导入/导出数据。您可以选择要用作数据源和目标的sql server/数据库/表,然后运行作业。设置此选项时,将有机会设置一个选项,以清除目标表并插入源中的所有数据


您还可以安排这些类型的事务按计划运行,尽管我在这方面从未做过很多工作。

如果您是以一次性数据同步的方式执行此操作,则在右键单击特定数据库时,SQL Server会在“任务”选项下提供导入/导出数据。您可以选择要用作数据源和目标的sql server/数据库/表,然后运行作业。设置此选项时,将有机会设置一个选项,以清除目标表并插入源中的所有数据


您还可以安排这些类型的事务按计划运行,尽管我在这方面从未做过很多工作。

您使用的是哪种RDBMS(MS SQL、Oracle、MySQL)?是否要用源表完全覆盖目标表?只需添加新行?这是在MS SQL中。基本上,目标表包含与源表相同的数据,但源表可能在现有行中有不同的值和/或有新行。我希望目标表与源表匹配,因此如果目标表中不存在新行,我可能必须插入新行,并更新现有行。您需要多久同步一次这两个表?您是在寻找实时的还是每天都在寻找的东西?这可能只是一次性的更新。您使用的是哪种RDBMS(MS SQL、Oracle、MySQL)?是否要用源表完全覆盖目标表?只需添加新行?这是在MS SQL中。基本上,目标表包含与源表相同的数据,但源表可能在现有行中有不同的值和/或有新行。我希望目标表与源表匹配,因此如果目标表中不存在新行,我可能必须插入新行,并更新现有行。您需要多久同步一次这两个表?您是否每天都在寻找实时或其他内容?这可能只是一次性更新。尝试了导入/导出方法,但在复制过程中失败。错误消息非常隐晦,没有多大用处。有没有办法编写脚本?我也尝试了上面Justin的解决方案,但它无法插入do来复制密钥。我只想插入新行/键,如果它们不同,则更新现有行/键。您能发布错误消息吗?如果首先清除目标表中的所有记录,则可以使用Justin的方法。这样可以避免重复的密钥。为了清除您的记录,我使用了truncate table,这对我来说更有效。谢谢。我将尝试“truncate”,然后尝试运行Justin的方法。下面是错误消息(还有很多,但要点如下):
“违反主键约束'PK\u SharedContent\u sharedContentGuid'。无法在对象'dbo.SharedContent'中插入重复键。”。(SQL Server导入和导出向导)
。我想我只需要先清除目标表。:-)看起来这两个问题都与清除旧数据以避免重复密钥有关。尝试了导入/导出方法,但在复制过程中失败。错误消息非常隐晦,没有多大用处。有没有办法编写脚本?我也尝试了上面Justin的解决方案,但它无法插入do来复制密钥。我只想插入新行/键,如果它们不同,则更新现有行/键。您能发布错误消息吗?如果首先清除目标表中的所有记录,则可以使用Justin的方法。这样可以避免重复的密钥。为了清除您的记录,我使用了truncate table,这对我来说更有效。谢谢。我将尝试“truncate”,然后尝试运行Justin的方法。下面是错误消息(还有很多,但要点如下):
“违反主键约束'PK\u SharedContent\u sharedContentGuid'。无法在对象'dbo.SharedContent'中插入重复键。”。(SQL Server导入和导出向导)
。我想我只需要先清除目标表。:-)看起来这两个问题都与清除旧数据有关,以避免重复密钥。