通过SQL Server Management Studio跨服务器迁移数据表数据咨询
方案1:使用SSMS导入导出向导(推荐一次性迁移/新手使用)
- 打开SSMS连接到目标服务器Server B,右键点击Database B → 选择「任务」→ 点击「导入数据」
- 数据源选择「SQL Server Native Client」,配置源服务器地址为Server A,选择对应身份验证方式、源数据库为Database A,点击下一步
- 目标保持默认的「SQL Server Native Client」,确认目标服务器为Server B、目标数据库为Database B,点击下一步
- 选择「复制一个或多个表或视图的数据」,点击下一步
- 源表选中
TableA,目标表手动下拉选择已存在的TableB,点击「编辑映射」核对源列和目标列的对应关系、数据类型匹配度,按需调整映射规则 - 配置选项中勾选「向目标表中追加行」,若目标表有自增标识列且需要保留源表的标识值,额外勾选「启用标识插入」,否则保持默认取消勾选
- 选择立即执行即可完成迁移,也可保存为SSIS包供后续复用
方案2:配置链接服务器直接跨库插入(适合自定义/增量迁移场景)
- 先在Server B上创建指向Server A的链接服务器:
- 在SSMS连接Server B,展开「服务器对象」→ 右键「链接服务器」→ 选择「新建链接服务器」
- 链接服务器名称填Server A的访问地址,服务器类型选择「SQL Server」,切换到「安全性」页配置拥有Server A Database A访问权限的账号密码,确认完成创建
- 打开查询窗口连接到Server B的Database B,执行插入语句即可:
INSERT INTO dbo.TableB (列1,列2,列3,/*按需补全所有需要迁移的列名*/) SELECT 列1,列2,列3,/*和目标表列一一对应*/ FROM [ServerA].[DatabaseA].[dbo].[TableA] -- 可在末尾加WHERE条件过滤需要迁移的部分数据
方案3:bcp命令行工具(适合超大数据量迁移)
- 先在可访问Server A的设备上执行导出命令,导出原生格式数据文件(完整保留数据类型):
bcp "DatabaseA.dbo.TableA" out C:\迁移临时目录\TableA.dat -S ServerA地址 -U 源账号 -P 源密码 -n
- 将导出的dat文件拷贝到可访问Server B的设备,执行导入命令:
bcp "DatabaseB.dbo.TableB" in C:\迁移临时目录\TableA.dat -S ServerB地址 -U 目标账号 -P 目标密码 -n -b 10000
参数说明:-n指定使用SQL Server原生格式避免类型转换,-b 10000指定每1万行提交一次,避免大事务占满数据库日志
迁移前注意事项
- 提前备份Server B上Table B的现有数据,避免误操作导致数据丢失
- 导入前可临时禁用Table B上的非必要索引、外键约束,导入完成后再重建开启,可大幅提升迁移速度
- 大表迁移建议在业务低峰期执行,避免占用过多服务器资源影响正常业务
内容的提问来源于stack exchange,提问作者Alexander
相关产品推荐
相关产品推荐

