Sql Server 大批量数据迁移

Sql Server 大批量数据迁移

一、生成BCP脚本

sql 复制代码
SELECT 
'bcp "SELECT * FROM [ZOL_YS001ERPV2].[dbo].[' + t.name + '] ' +
'WHERE CompanyCode IN (''00000015'',''00000603'','''') OR CompanyCode IS NULL  " ' +
'queryout "{文件夹路径}\' + t.name + '.dat" ' +
'-S {数据库IP} -U {账户} -P "{密码}" -n -b 50000'
FROM sys.tables t
JOIN sys.columns c ON t.object_id = c.object_id
WHERE c.name = 'CompanyCode:包含什么字段的表'

1、查出数据脚本 另存为 .bat

Export_Data.bat

文件编码更改:ANSI

2、导出文件会在 上面路径下

二、生成导入脚本

c 复制代码
@echo off
setlocal enabledelayedexpansion

echo 开始导入数据...
echo 导入时间: %date% %time%

set "server={数据库IP}"
set "database={表}"
set "user={账户}"
set "password={密码}"

for %%f in ({文件夹路径}\*.dat) do (
    set "filename=%%~nf"
    echo 正在导入表: !filename!
    
    bcp "!database!.dbo.!filename!" IN "%%f" -S %server% -U %user% -P "%password%" -n -b 50000 -E -h "TABLOCK"
    
    if !errorlevel! equ 0 (
        echo 成功导入: !filename!
    ) else (
        echo 错误: !filename! 导入失败
    )
)

echo 导入完成!
echo 结束时间: %date% %time%
pause

1、上方另存为 .bat

Import_All_Data.bat

文件编码更改:ANSI

数据库设置简单日志模式

sql 复制代码
--1、简单日志
ALTER DATABASE [H_ZOL_YS001ERPV2] SET RECOVERY SIMPLE;
 --2、完整日志
ALTER DATABASE [H_ZOL_YS001ERPV2] SET RECOVERY FULL;

比较两个库差异表

sql 复制代码
SELECT 
    b.TABLE_NAME
FROM 
    ZOL_YS001RPTV2.INFORMATION_SCHEMA.TABLES b
LEFT JOIN 
    H_ZOL_YS001RPTV2.INFORMATION_SCHEMA.TABLES a
    ON a.TABLE_NAME = b.TABLE_NAME
WHERE 
    a.TABLE_NAME IS NULL
    AND b.TABLE_TYPE = 'BASE TABLE'
ORDER BY 
    b.TABLE_NAME;

去除表自增

sql 复制代码
SET IDENTITY_INSERT 表 ON

可插入语句

SET IDENTITY_INSERT 表  OFF --294872

数据库权限

sql 复制代码
1、设置数据库可信度
执行以下T-SQL命令将数据库标记为可信:
sql

ALTER DATABASE [数据库名] SET TRUSTWORTHY ON


2、更改数据库所有者
有时需要将数据库所有者改为sa账户:
sql
USE [数据库名]
GO
EXEC sp_changedbowner 'sa'
相关推荐
while(1){yan}30 分钟前
Spring事务
java·数据库·spring boot·后端·java-ee·mybatis
盛世宏博北京39 分钟前
高效环境管控:楼宇机房以太网温湿度精准监测系统方案
开发语言·数据库·php·以太网温湿度变送器
运维行者_1 小时前
2026 技术升级,OpManager 新增 AI 网络拓扑与带宽预测功能
运维·网络·数据库·人工智能·安全·web安全·自动化
gfdhy1 小时前
【C++实战】多态版商品库存管理系统:从设计到实现,吃透面向对象核心
开发语言·数据库·c++·microsoft·毕业设计·毕设
Elastic 中国社区官方博客1 小时前
Elasticsearch:上下文工程 vs. 提示词工程
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
小唐同学爱学习1 小时前
如何解决海量数据存储
java·数据库·spring boot·mysql
代码的奴隶(艾伦·耶格尔)2 小时前
Nginx
java·服务器·nginx
头发还没掉光光2 小时前
HTTP协议从基础到实战全解析
linux·服务器·网络·c++·网络协议·http
wWYy.2 小时前
详解redis(15):缓存雪崩
数据库·redis·缓存
zzcufo2 小时前
多邻国第五阶段第13部分
java·开发语言·数据库