将数据从一个数据库传输到另一个数据库

问题描述 投票:0回答:10

如何从一个数据库中取出数据并插入到另一个数据库表中?我不能这样做。请帮助我将数据从一个设备传输到另一个设备。

sql sql-server sql-server-2008
10个回答
159
投票

有多种方法可以做到这一点,以下是两个选项:

选项 1 - 编写要移动的数据的脚本,然后在需要数据的位置运行脚本:

  • 右键单击要复制的数据库

  • 选择“任务”>“生成脚本”

  • '选择特定数据库对象'

  • 检查“表格”

  • 标记“保存到新查询窗口”

  • 点击“高级”

  • 将“脚本的数据类型”设置为“架构和数据”

  • 下一个,下一个

您现在可以在新数据库上运行生成的查询。

选项 2 - 导出要移动的数据,然后将其导入到您想要的位置:

  • 右键单击要复制的数据库

  • “任务”>“导出数据”

  • 下一个,下一个

  • 选择要将表复制到的数据库

  • 标记“从一个或多个表或视图复制数据”

  • 选择您要复制的表格

  • 完成


19
投票

将一个数据库表中的值插入到同一 SQL Server 上运行的另一个数据库表中的示例

insert into dbo.onedatabase.FolderStatus
(
  [FolderStatusId],
  [code],
  [title],
  [last_modified]
)

select [FolderStatusId], [code], [title], [last_modified]
from dbo.Twodatabase.f_file_stat

12
投票

对于 Azure 上的用户,请按照病毒中修改后的说明进行操作:

  1. 打开SSMS。
  2. 右键单击您想要从中复制数据的数据库。
  3. 选择
  4. 生成脚本 >> 选择特定数据库对象 >> 选择您要传输的表/对象。 强文字
  5. 在“保存到文件”窗格中,单击
  6. 高级
  7. 将“脚本的数据类型”设置为
  8. 架构和数据
  9. 将“脚本删除和创建”设置为
  10. 脚本删除和创建
  11. 在“Table/View Options”下将相关项目设置为 TRUE。不过我建议将所有设置为 TRUE 以防万一。您可以随时在脚本生成后对其进行修改。
  12. 设置文件路径>>下一步>>下一步
  13. 打开新创建的 SQL 文件。从文件顶部删除“使用”。
  14. 在目标数据库上打开新的查询窗口,粘贴脚本内容(不使用)并执行。

9
投票
如果两个数据库位于同一服务器上并且您想要传输整个表(复制它),则使用简单的 select into 语句...

select * into anotherDatabase..copyOfTable from oneDatabase..tableName

然后您可以将光标写入 sysobjects 顶部并以这种方式复制整组表。

如果您想要更复杂的数据提取和转换,请使用SSIS并在其中构建适当的ETL。


5
投票
您可以使用 Visual Studio 2015。前往

工具 => SQL server => 新数据比较

选择

目标数据库。


3
投票
    您可以使用 Management Studio 备份和恢复数据库。
  1. 再次从 Management Studio 中,您可以使用“复制数据库”。
  2. 如果有理由的话,您甚至可以手动执行此操作。我的意思是手动创建目标数据库并通过sql语句手动复制数据......
你能解释一下你为什么问这个吗?是你没有这方面的经验还是别的什么?


3
投票
有多种选择,取决于您的需求。 请参阅以下链接:

  1. 在服务器之间复制数据
  2. 将表从一个数据库复制到 SQL Server 中的另一个数据库

2
投票
这些解决方案在目标数据库为空的情况下有效。 如果两个数据库都已经有一些数据,您需要更复杂的东西

http://byalexblog.net/merge-sql-databases


1
投票
这可以通过 T-SQL 语句来实现,如果您知道

FROM

 子句可以为表名指定数据库。

insert into database1..MyTable select from database2..MyTable

微软对语法的解释如下:

https://learn.microsoft.com/en-us/sql/t-sql/queries/from-transact-sql?view=sql-server-ver15

如果表或视图存在于同一 SQL Server 实例上的另一个数据库中,请使用

database.schema.object_name

 形式的完全限定名称。

schema_name

 可以省略,如上,表示当前用户的默认 schema。默认情况下,它是 
dbo

如果需要,可以向列/行添加任何过滤。请务必在移动数据之前创建任何新表。


0
投票
在两个不同的数据库之间以编程方式执行此操作可能涉及使用链接服务器的计划作业。但链接服务器需要 DBA 级别的知识才能设置。如果无法使用链接服务器,只需编写一个程序:1. 从源表中读取一行,2. 将其插入到目标表中。程序员只需使用具有 INSERT 权限的连接字符串即可插入目标数据库表。我已经使用这两种方法解决了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.