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

时间:2012-04-05 12:41:55

标签: sql sql-server sql-server-2008

如何从一个数据库中获取数据并插入另一个数据库表....我不能这样做。请帮我将数据传输到另一个。提前谢谢......

10 个答案:

答案 0 :(得分:102)

http://okayguru.blogspot.co.uk/2012/03/copy-one-database-to-another-database.html

有以下几种方法:

选项1 - 右键单击​​要复制的数据库

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

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

  • 选中“表格”

  • 标记'保存到新查询窗口'

  • 点击“高级”

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

  • 接下来,下一步

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

选项2

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

  • '任务'> '导出数据'

  • 接下来,下一步

  • 选择要将表复制到

  • 的数据库
  • 标记'从一个或多个表或视图中复制数据'

  • 选择要复制的表格

  • 完成

答案 1 :(得分:15)

将一个数据库表中的值插入另一个数据库表的示例

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

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

答案 2 :(得分:6)

对于Azure上的用户,请按照Virus:

中的这些修改说明进行操作
  1. 打开SSMS。
  2. 右键单击要复制数据的数据库。
  3. 选择生成脚本>> 选择特定数据库对象>>选择要传输的表/对象。 强文
  4. 在“保存到文件”窗格中,单击高级
  5. 将“数据类型设置为脚本”设置为架构和数据
  6. 将“脚本DROP和CREATE”设置为脚本DROP并创建
  7. 在“表格/视图选项”下,将相关项目设置为TRUE。虽然我建议将all设置为TRUE以防万一。您可以在生成后始终修改脚本。
  8. 设置文件路径>>下一个>>下一步
  9. 打开新创建的SQL文件。从文件顶部删除“使用”。
  10. 在目标数据库上打开新的查询窗口,粘贴脚本内容(不使用)并执行。

答案 3 :(得分:4)

如果两个数据库都在同一台服务器上并且您想要传输整个表(复制它),那么使用简单的select into语句......

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

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

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

答案 4 :(得分:3)

  1. 您可以使用Management Studio备份和还原数据库。
  2. 再次从Management Studio中,您可以使用“复制数据库”。
  3. 如果有理由,您甚至可以手动执行此操作。我的意思是手动创建目标数据库并通过sql语句手动复制数据......
  4. 你可以澄清你为什么这么问吗?是不是你没有做到这一点或其他事情?

答案 5 :(得分:3)

您可以使用visual studio 2015.转到工具 => SQL服务器 => 新数据比较

选择来源目标数据库。

答案 6 :(得分:2)

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

  1. Copying Data Between Servers
  2. Copy tables from one database to another in SQL Server

答案 7 :(得分:2)

这些解决方案适用于目标数据库为空的情况。 如果两个数据库都有一些数据,则需要更复杂的http://byalexblog.net/merge-sql-databases

答案 8 :(得分:0)

如果您知道FROM子句可以为表名指定数据库,则可以通过T-SQL语句来实现。

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

这是Microsoft解释语法的方式: https://docs.microsoft.com/en-us/sql/t-sql/queries/from-transact-sql?view=sql-server-ver15

如果表或视图在SQL Server的同一实例上的另一个数据库中存在,请使用database.schema.object_name格式的完全限定名称。

可以像上面一样省略

schema_name,这表示当前用户的默认架构。默认情况下为dbo

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

答案 9 :(得分:0)

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