【问题标题】:How to quickly import data between similar databases in SQL?SQL中相似数据库之间如何快速导入数据?
【发布时间】:2023-03-19 00:46:01
【问题描述】:

我使用 SQL Server。

有 2 个数据库,oldnew 一个。

数据库的关系结构完全相同。

区别在于:

  1. 一个表中的某些列丢失
  2. 某些列的标题不同
  3. 在新列中添加了一些列

问题是找到将数据从旧数据库导入新数据库的方法。

【问题讨论】:

  • 您有使用 SSIS 的经验吗?您的用例听起来非常适合它。如果您对 SSIS 有所了解,您可以在大约 10 分钟内设置数据传输,如果您以前从未使用过 SSIS,则可能需要几个小时。见:msdn.microsoft.com/en-us/library/ms141026.aspx
  • 谢谢,我还不知道它是什么。我会看的:)
  • 除了位不同之外,它们是“完全相同的结构”?我怀疑“完全”并不是在这里选择的最佳词。也许“非常相似,包含相同的表名集”。

标签: sql sql-server database import


【解决方案1】:

使用 SSMS 中的Import Data Wizard 完成任务:

它将引导您完成这些步骤。你可以阅读更多here

【讨论】:

  • +1 您还可以保存工作流程以供以后重复使用...您可以使用 SSIS 编辑保存的包 :)
  • 由于主键自动递增,导入失败。数据流任务 1:插入只读列“AuthorsId”失败。
  • 针对您要放入数据的数据库,您需要在导入之前运行SET IDENTITY_INSERT ON。然后是SET IDENTITY_INSERT OFF。反之亦然——我总是把那个弄糊涂。
  • 我做到了!)))真的谢谢)!
【解决方案2】:

你可以写一个select into query,但是先考虑一下eric的方法。我只是将其添加为替代方案。

USE AdventureWorks2008R2;
GO
SELECT c.FirstName, c.LastName, e.JobTitle, a.AddressLine1, a.City, 
    sp.Name AS [State/Province], a.PostalCode
INTO dbo.EmployeeAddresses
FROM Person.Person AS c
    JOIN HumanResources.Employee AS e 
    ON e.BusinessEntityID = c.BusinessEntityID
    JOIN Person.BusinessEntityAddress AS bea
    ON e.BusinessEntityID = bea.BusinessEntityID
    JOIN Person.Address AS a
    ON bea.AddressID = a.AddressID
    JOIN Person.StateProvince as sp 
    ON sp.StateProvinceID = a.StateProvinceID;
GO

参考:msdn

使用“as”语句,您需要编写目标的列名,以便列匹配。

【讨论】:

  • 我了解编写一些查询,但问题是键是自动递增的,粘贴相关表会很困难
猜你喜欢
  • 2021-05-06
  • 2020-02-06
  • 2023-04-07
  • 1970-01-01
  • 1970-01-01
  • 2015-09-13
  • 1970-01-01
  • 2016-04-29
  • 2021-04-02
相关资源
最近更新 更多