相关文章推荐

将数据从一个数据库转移到另一个数据库

86 人关注

如何从一个数据库获取数据并插入到另一个数据库表中?我无法做到这一点。请帮助我把数据从一个数据库转移到另一个数据库。

2 个评论
有许多方法可以做到这一点。你的要求是什么?"我不能这样做。"你试过什么?你看到什么错误?
这个问题的结构让人有些明白,作者是完全迷失了方向。当然,你可以通过在这里开始他的旅程来判断他。我只想写一个答案。
sql
sql-server
sql-server-2008
Bharathi
Bharathi
发布于 2012-04-05
10 个回答
Virus
Virus
发布于 2021-07-22
已采纳
0 人赞同

有几种方法可以做到这一点,下面是两种选择。

- 在你想复制的数据库上点击右键

  • 选择 "任务">"生成脚本"。

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

  • 检查 "表"。

  • 标记 "保存到新的查询窗口"。

  • 单击 "高级"。

  • 将 "脚本的数据类型 "设置为 "模式和数据"。

  • 下一个,下一个

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

  • 在你想复制的数据库上点击右键

  • 任务" > "导出数据

  • 下一个,下一个

  • 选择要复制表的数据库

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

  • 选择你要复制的表

  • 在sql server 2008中,为了复制每个表的所有数据,你应该在 "任务">"生成脚本"==>脚本向导==>选择脚本选项部分启用脚本数据。
    选项1我在最后一步 preparing data 时得到一个错误。选项2 我在 Choose the database to copy the tables to 之前得到一个错误。
    我在两个数据库中都有数据......你的解决方案在这种情况下会有帮助吗?
    Rob
    在SSMS 2019年脚本数据不再被支持。 你必须使用导出。
    Abhi
    面临@Emaborsa提到的同样问题
    Lokanathan
    Lokanathan
    发布于 2021-07-22
    0 人赞同

    将一个数据库表中的数值插入到运行在同一SQL服务器上的另一个数据库表中的例子

    insert into dbo.onedatabase.FolderStatus
      [FolderStatusId],
      [code],
      [title],
      [last_modified]
    select [FolderStatusId], [code], [title], [last_modified]
    from dbo.Twodatabase.f_file_stat
    
    这对我来说是有效的,但是,在SqlExpress 2014中,我不得不使用其他答案中的.符号,即INSERT INTO [db1].table1( ID, MetaTitle ) SELECT ID, MetaTitle FROM [db2].table1
    顺序应该是 onedatabase.dbo.FolderStatus Twodatabase.dbo.f_file_stat 。或者你使用@AdamHey指出的 .. 的符号。
    pim
    pim
    发布于 2021-07-22
    0 人赞同

    对于那些在Azure上的人,请按照病毒的这些修改后的指示。

  • 打开SSMS。
  • 右键单击你希望 复制数据 的数据库。
  • 选择 生成脚本 >> 选择特定的数据库对象 >> 选择你想转移的表/对象。 强大的文本
  • 在 "保存到文件 "窗格中,点击 高级
  • 将 "脚本的数据类型 "设置为 模式和数据
  • 将 "脚本DROP和CREATE "设置为 脚本DROP和CREATE
  • 在 "表/视图选项 "下,将相关项目设置为 "true"。虽然我建议把所有项目都设为 "true",以备不时之需。你可以在脚本生成后随时修改它。
  • 设置文件路径 >> 下一步 >> 下一步
  • 打开新创建的SQL文件。从文件的顶部删除 "使用"。
  • 在目标数据库上打开新的查询窗口,粘贴脚本内容(不使用)并执行。
  • Zilog
    Zilog
    发布于 2021-07-22
    0 人赞同

    如果两个数据库都在同一台服务器上,并且你想转移整个表(复制它),那么就使用简单的选择进入语句 ...

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

    然后你可以在sysobjects的顶部写游标,并以这种方式复制整个表集。

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

    如果你使用select * into语法,键和约束将不会被复制。
    Pavan Shevle
    Pavan Shevle
    发布于 2021-07-22
    0 人赞同

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

    选择 数据库和 目标 数据库。

    这是一个很好的工具。虽然比较缓慢:)
    e4rthdog
    e4rthdog
    发布于 2021-07-22
    0 人赞同
  • 你可以使用Management Studio备份和恢复数据库。
  • 同样从管理工作室你可以使用 "复制数据库"。
  • 如果有理由,你甚至可以手动操作。我的意思是手动创建目标数据库并通过sql语句手动复制数据...
  • 你能说明你为什么这样问吗?是你没有这方面的经验还是其他原因?

    Software Engineer
    Software Engineer
    发布于 2021-07-22
    0 人赞同

    有多种选择,取决于你的需求。 请参见以下链接。

  • 在服务器之间复制数据
  • 在SQL Server中从一个数据库复制表到另一个数据库
  • Anubis
    Anubis
    发布于 2021-07-22
    0 人赞同

    这些解决方案在目标数据库为空白的情况下是有效的。 如果两个数据库都已经有一些数据,你需要一些更复杂的东西 http://byalexblog.net/merge-sql-databases

    Jon
    这一切都很好,除了那个人丢了FK和PK,似乎没有把它们放回去......另外,答案不应该不仅仅是一个指向别人的链接吗?
    @Jon 你为什么要在源数据库中恢复PK和FK?最好是在导出后将其复制并扔进垃圾桶。
    Jon
    因为我想做的是同步两个环境(即把QA带到Develop,这样我们就不必重复他们所有的数据输入)。
    themefield
    themefield
    发布于 2021-07-22
    0 人赞同

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

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

    以下是微软对该语法的解释。 https://docs.microsoft.com/en-us/sql/t-sql/queries/from-transact-sql?view=sql-server-ver15

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

     
    推荐文章