【问题标题】:Moving specific data from one database to another将特定数据从一个数据库移动到另一个数据库
【发布时间】:2017-08-04 14:56:04
【问题描述】:

这适用于 SQL Server。我有表 Product (product_id pk) 和 Customers (cust_id pk)。以及其他一些将上述内容作为外键的表。

我需要想出一组很好的 INSERT 语句,这些语句可以将行从上面的表中移动,用于特定产品从一个数据库到另一个数据库。有没有好的工具可以做到这一点?

不同之处还在于,不同的数据库对产品和客户有不同的 id - 因此插入应该首先根据产品名称和客户名称等其他内容查找 id(假设没有重复)。

【问题讨论】:

  • stackoverflow.com/questions/30009962/… 你最好的办法是为此使用 SSIS,这个问题已经在堆栈溢出时得到了多次回答。大方向是在那个主题上。您只需要创建自己的数据流。
  • 你用Other Database做什么?我认为在数据库之间为相同的产品/客户设置不同的Keys 并不是一个好主意。您可能需要考虑复制。
  • ttallierchio,似乎仍然没有通用的解决方案。我在想 - 在产品表中给一个工具一个产品名称 - 然后它应该浏览整个数据库以查找对该产品条目的所有外键引用(并继续递归搜索),从而找出所有需要导出的行和构建一个中间 XML 或脚本,然后可以将其导入另一个数据库。
  • WEI_DBA,Product/Customers 实际上是一个不好的例子。考虑必须在您的应用程序中定义“新的业务流程或工作流程”。您想先在 QA DB 中定义它,对其进行测试,然后将其移至 PROD。

标签: sql sql-server


【解决方案1】:

如果数据库在同一台服务器中,您可以使用以下假设它们具有相同的表结构

USE [TESTDB]

SELECT *
  INTO #values
  FROM producttbl

USE [OTHERDB]

INSERT INTO tbl_product
SELECT *
  FROM #values

不同之处在于不同的数据库有不同的 id 产品和客户 - 所以插入应该首先查找基于 id 在其他东西上,比如产品名称和客户名称(假设有 没有重复)。

为此,您必须创建一个带有条件的 SQL 语句来查找这些特定记录

【讨论】:

    猜你喜欢
    • 2012-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-11
    • 2016-06-10
    • 2011-05-19
    • 2020-03-16
    相关资源
    最近更新 更多