一次将数据和模式从一个数据库传输到另一个表

时间:2016-06-08 14:57:44

标签: sql sql-server database sql-server-2016

希望你们都能帮助我解决这个问题。我的老板建立了一个全新的数据库,他想要新数据库中的几个旧表。我的问题是如何在不删除旧数据库中的表的情况下将数据和模式从旧数据库传输到新数据库?这是我的两个数据库:WTS-SQL-DEV =这是旧数据库 :WTS-Business =是新数据库

评论的其他信息:

  

我可以在同一台机器上访问这两个数据库。我发现了一个视频   youtube如何转移表和结构。我曾是   错过了数据。

3 个答案:

答案 0 :(得分:1)

已经有两个很好的答案了。

另一种选择是右键单击数据库,然后转到任务>导出数据。

这将启动导入/导出向导。您可以定义源/目标服务器/数据库和对象,并复制所有内容。

https://msdn.microsoft.com/en-us/library/ms140052.aspx

答案 1 :(得分:0)

  1. 备份数据库
  2. enter image description here

    enter image description here

    1. 在新计算机上还原数据库
    2. enter image description here

      enter image description here

答案 2 :(得分:0)

您提到2个数据库位于同一台计算机上,并且您想出了如何获取架构

(我在数据库的右键单击上下文菜单中使用Tasks - Create Scripts,并通过选择各个表生成脚本,并保存到新的查询窗口..然后就像使用[new_db]一样简单在每个创建的脚本之上,将在新数据库中创建对象,其中[new_db]是您的新数据库名称。)。

由于表具有相同的结构,因此要插入数据,一旦在新数据库中创建表,它就是insert select语句。如果存在(应该是)自动生成的主键列,则启用identity insert。插入数据。然后停用identity insert

-- Note: Identity_Insert is required if there is an identity column present
-- Otherwise those two lines can be removed/commented out
Use [new_db]
Set IDENTITY_INSERT [table_name] On 
Insert Into [table_name] 
-- Note 2: Default schema is [dbo], but technically, it is [db].[schema].[table]
Select * From [old_db].[dbo].[table_name]
Set IDENTITY_INSERT [table_name] Off 

在您的情况下非常简单,无需备份/恢复数据库。如果数据库位于单独的非链接服务器上,则需要备份/恢复才能在同一台计算机上获取旧数据库和新数据库...这是您在特定情况下已经拥有的数据库。