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

问题描述:

希望大家能帮助我解决这种情况。我的老板建立了一个全新的数据库,他希望新数据库中的几个旧表。我的问题是,如何在不删除旧数据库中的表的情况下将数据和模式从旧数据库转移到新数据库?这里是我的两个数据库:WTS-SQL-DEV =这是旧数据库 :WTS-商务=被新的数据库将数据和模式从一个数据库传送到另一个表中一次

从评论附加信息:

我可以同时访问数据库同一台机器。我在 youtube上找到了一个视频如何转移表格和结构。我是 缺少数据。

+0

哦进出口运行Microsoft SQL Server 2016 – kliebwatchtower

+1

拿旧的数据库的完整备份。复制到新电脑。 – jarlh

+0

如果你有两个数据库在同一台服务器上,或者至少有一台链接服务器,那么插入这样的数据会很轻松。让我们更多地了解这一点,你可以从同一台机器访问两个数据库吗? –

  1. ,使数据库

enter image description here

enter image description here

  1. 的备份在新计算机上恢复数据库

enter image description here

enter image description here

你提到2个数据库是在同一台机器上,那你想通了如何在

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

由于表具有相同的结构,因此要插入数据,一旦在新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 

在你的情况下非常直接,并且不需要备份/恢复数据库。如果数据库位于单独的非连接服务器上,则需要进行备份/恢复,以便将旧数据库和新数据库置于同一台计算机上......这是您在特定情况下已具备的功能。

+0

使用[WTS-Business] 设置IDENTITY_INSERT [dbo]。[WTS-Expense-RecurringCharges] On Insert Into [dbo]。[WTS-Expense-RecurringCharges] Select * From [WTS-SQL-DEV]。[dbo ] WST-Expense-RecurringCharges] 设置IDENTITY_INSERT [dbo]。[WTS-Expense-RecurringCharges]关Msg 40515,Level 15,State 1,Line 30 参考数据库和/或服务器名称'WTS-SQL-此版本的SQL Server不支持DEV.dbo.WTS-Expense-RecurringCharges。 我试图按照你的例子这是我看到当我执行 – kliebwatchtower

+0

@kliebwatchtower这似乎是一个SQL 2016年的限制(跨数据库事务,当两个数据库在同一个实例是不允许的......我认为@ JiggsJedi的答案可能是要走的路。 –

已经有两个很好的答案。

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

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

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

+0

好又容易:) –

+0

我通过进口商/出口商获得了数据。那很简单。有没有简单的方法来包含所有额外的东西,如约束等? – kliebwatchtower

+0

这些可能需要脚本。右键单击DB>任务>生成脚本。在“设置脚本选项”中,单击“高级”,并在底部附近启用对约束/键/索引/触发器等的脚本编写。 – JiggsJedi