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'
相关推荐
NineData9 小时前
NineData 迁移评估功能正式上线
数据库·dba
NineData15 小时前
数据库迁移总踩坑?用 NineData 迁移评估,提前识别所有兼容性风险
数据库·程序员·云计算
赵渝强老师17 小时前
【赵渝强老师】PostgreSQL中表的碎片
数据库·postgresql
全栈老石21 小时前
拆解低代码引擎核心:元数据驱动的"万能表"架构
数据库·低代码
YuMiao1 天前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议
倔强的石头_2 天前
kingbase备份与恢复实战(二)—— sys_dump库级逻辑备份与恢复(Windows详细步骤)
数据库
jiayou643 天前
KingbaseES 实战:深度解析数据库对象访问权限管理
数据库
李广坤4 天前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
Sinclair4 天前
简单几步,安卓手机秒变服务器,安装 CMS 程序
android·服务器
Rockbean5 天前
用40行代码搭建自己的无服务器OCR
服务器·python·deepseek