我无法使用链接服务器。
两台服务器上的两个数据库都具有相同的结构,但数据不同。
我有10k行从一台服务器上的数据库传输到另一台服务器上的同一个数据库。我无法在其他服务器上恢复数据库,因为它将占用我在其他服务器上没有的大量空间。
所以,我有2个选项,我不知道如何执行:
答案 0 :(得分:5)
我可以以某种方式删除或删除其他表或仅在一个表上进行备份吗?
不幸的是,你不能这样做
如何根据选定的10k行创建10k插入查询?
右键单击数据库 - > 任务 - > 生成脚本 - > (简介)下一步
选择选择特定数据库对象 - > 表,选择了您需要的表格 - > 下一步
高级 - >搜索数据类型脚本从仅架构(默认情况下)更改为仅限数据 - > 确定
选择保存位置 - > 下一步 - > 下一步。等待操作结束。
这将生成具有10k插入的文件。
另一种方法是使用导入/导出向导(一次性导入/导出的最简单方法),如果数据库之间有链接。
答案 1 :(得分:3)
有很多方法可供选择,这是使用BCP的一种方法。这是SQL Server附带到Import and Export Bulk Data的工具。
流程概要:
BCP OUT
用于整个表格,或BCP QUERYOUT
带有查询以选择要导出的10k行BCP IN
。答案 2 :(得分:2)
我的建议是将这些行导出到excel(您可以通过复制粘贴查询输出来执行此操作)并将其传输到其他服务器并将其导入。
这是非官方的方法: http://therealdanvega.com/blog/2010/08/04/create-sql-insert-statements-from-a-spreadsheet
这里我假设您只需要传输事务数据,并且您的参考数据在两台服务器上都是相同的。因此,您只需要执行一个查询来导出数据
答案 3 :(得分:0)
一旦你使用SSIS执行这样的任务,我就会明确地沿着SSIS路线前进,你不会使用其他任何非常简单的脚本。你可以使用任何版本,这将是一项简单的工作,而且非常快。
答案 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;