在其他服务器上将10k行从表复制到表

时间:2017-12-19 04:54:59

标签: sql sql-server

我无法使用链接服务器。

两台服务器上的两个数据库都具有相同的结构,但数据不同。

我有10k行从一台服务器上的数据库传输到另一台服务器上的同一个数据库。我无法在其他服务器上恢复数据库,因为它将占用我在其他服务器上没有的大量空间。

所以,我有2个选项,我不知道如何执行:

  1. 仅备份和还原一个表 - 该表链接到许多其他表,但这些其他表也存在于其他服务器上。我可以以某种方式删除或删除其他表或仅在一个表上进行备份吗?
  2. 我需要传输10k行。如何根据选定的10k行创建10k插入查询?

6 个答案:

答案 0 :(得分:5)

  

我可以以某种方式删除或删除其他表或仅在一个表上进行备份吗?

不幸的是,你不能这样做

  

如何根据选定的10k行创建10k插入查询?

右键单击数据库 - > 任务 - > 生成脚本 - > (简介)下一步

选择选择特定数据库对象 - > ,选择了您需要的表格 - > 下一步

高级 - >搜索数据类型脚本仅架构(默认情况下)更改为仅限数据 - > 确定

选择保存位置 - > 下一步 - > 下一步。等待操作结束。

这将生成具有10k插入的文件。

另一种方法是使用导入/导出向导(一次性导入/导出的最简单方法),如果数据库之间有链接。

答案 1 :(得分:3)

有很多方法可供选择,这是使用BCP的一种方法。这是SQL Server附带到Import and Export Bulk Data的工具。

流程概要:

  1. 使用BCP将数据从源服务器导出到文件 - BCP OUT用于整个表格,或BCP QUERYOUT带有查询以选择要导出的10k行
  2. 将文件复制到目标服务器
  3. 使用目标数据库上的BCP导入数据 - BCP IN

答案 2 :(得分:2)

我的建议是将这些行导出到excel(您可以通过复制粘贴查询输出来执行此操作)并将其传输到其他服务器并将其导入。

这是官方方法: - https://docs.microsoft.com/en-us/sql/relational-databases/import-export/import-data-from-excel-to-sql

这是非官方的方法: http://therealdanvega.com/blog/2010/08/04/create-sql-insert-statements-from-a-spreadsheet

这里我假设您只需要传输事务数据,并且您的参考数据在两台服务器上都是相同的。因此,您只需要执行一个查询来导出数据

答案 3 :(得分:0)

一旦你使用SSIS执行这样的任务,我就会明确地沿着SSIS路线前进,你不会使用其他任何非常简单的脚本。你可以使用任何版本,这将是一项简单的工作,而且非常快。

  1. 在可用的Visual Studio版本中打开新的SSIS项目有许多不同,但即使是2008版本也会执行这个简单的任务,您可能需要安装集成服务或类似的用于称为出价的东西(2008年的商业信息开发工作室) )(任何到2015年的任何事情,虽然2017年几乎支持)
  2. 添加数据流任务
  3. 双击数据流任务
  4. 屏幕底部添加两个连接管理器(1到源,1到目标数据库)
  5. 添加指向源数据库表的oledb源
  6. 添加指向目标数据库表的oledb目标
  7. 在源和目标之间拖动线(如果名称相同,则应自动映射所有列)
  8. 点击开始,数据将快速流动

答案 4 :(得分:-1)

你已经创建了DbInstaller。使用dbInstaller,您可以共享整个数据库。 Dbinstaller同时使用ado.Net和Entity Frame Work,但我使用了Entity Frame Work。

答案 5 :(得分:-2)

你可以通过sql server query

来做到这一点

首先选择第一个数据库,如

Use database1 --- this will be your first database

在选择第一个数据库之后,我们将通过此查询将表行放在临时表中

select * into #Temp from select * from table1 

现在我们选择第二个数据库并通过此代码将临时表数据插入第二个数据库表

use secondDatabaseName



INSERT INTO tableNameintoinsert (col1, col2, )
SELECT col1, col2 FROM #temp;