MSSqlServer 数据库降级及数据转移
--MSSqlServer数据库降级及数据转移
--MS SQL SERVER高版本数据库(Database_A)恢复数据到低版本数据库(Database_B)中
--1、数据库结构对象(包含表、视图、函数、存储过程等)导出:高版本MS SQL SERVER中,Database_A -- 任务 -- 生成脚本 -- 执行 -- 保存为 DBObject_Create.sql;
--2、修改DBObject_Create.sql中数据库名称(避免重名,用查找替换方式)、数据文件保存路径(按Database_B的路径);
--3、低版本MS SQL SERVER中,执行DBObject_Create.sql,创建与Database_A数据库相同的表、视图、存储过程、函数等对象;
--4、将Database_B中表的外键置为“不检查约束”:
SET XACT_ABORT ON
BEGIN TRAN
DECLARE @SQL VARCHAR(99)
DECLARE CUR_FK CURSOR LOCAL FOR
SELECT 'ALTER TABLE '+ OBJECT_NAME(FKEYID) + ' NOCHECK CONSTRAINT ALL ' FROM SYSREFERENCES
OPEN CUR_FK
FETCH CUR_FK INTO @SQL
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC(@SQL)
FETCH CUR_FK INTO @SQL
END
CLOSE CUR_FK
DEALLOCATE CUR_FK;
--执行完毕后关闭窗口,提示提交数据
--5、禁用Database_B中表的触发器:
SET XACT_ABORT ON
BEGIN TRAN
DECLARE @SQL VARCHAR(99)
DECLARE CUR_TRI CURSOR LOCAL FOR
SELECT 'ALTER TABLE '+ OBJECT_NAME(FKEYID) + ' DISABLE TRIGGER ALL ' FROM SYSREFERENCES
OPEN CUR_TRI
FETCH CUR_TRI INTO @SQL
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC(@SQL)
FETCH CUR_TRI INTO @SQL
END
CLOSE CUR_TRI
DEALLOCATE CUR_TRI;
--执行完毕后关闭窗口,提示提交数据
--6、数据导入:低版本MS SQL SERVER中,Database_B -- 任务 -- 导入数据 -- 源数据库(Database_A)-- 目标数据库(Database_B)-- 执行;
--或者在高版本数据库上执行:导出数据
--导入对象中不要选择视图(系统会提示视图对象已存在)
--7、将Database_B中表的外键置为“检查约束”:
SET XACT_ABORT ON
BEGIN TRAN
DECLARE @SQL VARCHAR(99)
DECLARE CUR_FK CURSOR LOCAL FOR
SELECT 'ALTER TABLE '+ OBJECT_NAME(FKEYID) + ' CHECK CONSTRAINT ALL ' FROM SYSREFERENCES
OPEN CUR_FK
FETCH CUR_FK INTO @SQL
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC(@SQL)
FETCH CUR_FK INTO @SQL
END
CLOSE CUR_FK
DEALLOCATE CUR_FK;
--执行完毕后关闭窗口,提示提交数据
--8、启用Database_B中表的触发器:
SET XACT_ABORT ON
BEGIN TRAN
DECLARE @SQL VARCHAR(99)
DECLARE CUR_TRI CURSOR LOCAL FOR
SELECT 'ALTER TABLE '+ OBJECT_NAME(FKEYID) + ' ENABLE TRIGGER ALL ' FROM SYSREFERENCES
OPEN CUR_TRI
FETCH CUR_TRI INTO @SQL
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC(@SQL)
FETCH CUR_TRI INTO @SQL
END
CLOSE CUR_TRI
DEALLOCATE CUR_TRI;
--执行完毕后关闭窗口,提示提交数据
--9、数据库比较:Database_A Vs Database_B
转自:上海-戴优辰
MSSqlServer 数据库降级及数据转移的更多相关文章
- sql server 2008 把远程的数据库的数据转移到本地数据数据库里
如题:把远程的数据库对应表里的数据转移到本地数据数据库的对应表里 比如把192.168.188.160的DB的A表的数据转移到本地的DB的A表里 第一步:连接远程服务器前准备 exec sp_addl ...
- sqlite升级--浅谈Android数据库版本升级及数据的迁移
Android开发涉及到的数据库采用的是轻量级的SQLite3,而在实际开发中,在存储一些简单的数据,使用SharedPreferences就足够了,只有在存储数据结构稍微复杂的时候,才会使用数据库来 ...
- 云服务器 ECS Linux 系统盘数据转移方法
转自:https://help.aliyun.com/knowledge_detail/41400.html 问题描述 购买云服务器 ECS Linux 服务器时,未购买数据盘,使用一段时间后,随着业 ...
- sql server2008数据库复制实现数据同步常见问题
sql server2008数据库复制实现数据同步常见问题 在原作者基础上追加 sql server2008数据库复制实现数据同步常见问题 23.发布 'xx' 的并发快照不可用,因为该快照尚未完全生 ...
- MySQL数据转移至SQL Server详解
最近有个活是mysql数据转移到sql server 2012,直接手动转工作量太大,发现网上有工具教程,则记录一下. 一.安装MySQL ODBC驱动为MySQL安装Connector/ODBC驱动 ...
- SQLServer2012数据库降级至SQLServer2008R2的方法
一. 背景 因为对方的客户的服务器安装的数据版本2012,公司开发同事需要客户数据库的备份数据,但是公司数据版本是2008R2的,无法还原. 由于2012备份无法直接还原至2008R2(MSSQ ...
- 轻松快速实现MySql数据向SQLServer数据转移
转移数据的方式其实园子里各位亲友已经写过不少了,这里挑一种常用的ODBC数据转移,主要是把每个步骤尽可能完善讲到,下次直接按文章从头到尾看一遍,可以在最短时间完成数据转移. 这里用到的工具有MYSQL ...
- finedb(内置的HSQL数据库)迁移数据到MySQL
finedb(内置的HSQL数据库)迁移数据到MySQL 1. 前言 在FineBI中,决策平台的数据(用户.角色.组织机构.权限等信息)是存储在finedb数据库中的,默认情况下finedb是一个内 ...
- sql server 数据库复制实现数据同步常见问题(不定期更新)
sql server2008数据库复制实现数据同步常见问题 在原作者基础上追加 sql server2008数据库复制实现数据同步常见问题 23.发布 'xx' 的并发快照不可用,因为该快照尚未完全生 ...
随机推荐
- Data Base Oracle 常用命令
Data Base Oracle 常用命令 1.登录:(不需要密码,属于管理员权限) conn /as sysdba; 2.查看数据库存储位置: select name from v$datafil ...
- 《Beginning Java 7》 - 4 - finalize() 手动垃圾回收
当我们想在系统进行垃圾回收时做一些特定的工作,我们就可以重写 finalze() 函数,因为 Object 的 此函数是空的. 比如: protected void finalize() throws ...
- CharSequence与String的区别
CharSequence与String都能用于定义字符串,但CharSequence的值是可读可写序列,而String的值是只读序列. 原文: http://blog.csdn.net/joy_zha ...
- 6.BOM
BOM的介绍 浏览器对象模型. 操作浏览器部分功能的API.比如让浏览器自动滚动. BOM的结构图 window对象是BOM的顶层(核心)对象,所有对象都是通过它延伸出来的,也可以称为window的子 ...
- react学习之路-配制antd-mobile
经过将近三个月的使用,现在终于在我老大的带领下做完了一个react的项目,感觉还可以,最大的不足就是,对于react中的很多的东西都是掺杂着jq使用来做的,这是最不满意的一点吧,但是开发进度很近,只能 ...
- kali linux之免杀技术
恶意软件: 病毒,木马.蠕虫,键盘记录,僵尸程序,流氓软件,勒索软件,广告程序 在用户非自愿的情况下安装 出于某种恶意的目的:控制,窃取,勒索,偷窥,推送,攻击 恶意程序最主要的防护手段:杀软 检测原 ...
- linux命令提示符[root@localhost ~]#详解
[root@localhost ~]# 1. @之前代表当前登录用户 在Linux中管理员用户是root,还有一些普通用户: 在此例中,root代表当前登录用户 2. @之后代表当前计算机主机 ...
- [ActionScript 3.0] 绘制扇形方法
/** * 绘制扇形 * @param mc 承载扇形的对象 * @param x 圆心角x * @param y 圆心角y * @param r 半径 * @param angle 绘制角度 * @ ...
- jquery源码解析:jQuery延迟对象Deferred(工具方法)详解2
请接着上一课继续看. $.Deferred()方法中,有两个对象,一个是deferred对象,一个是promise对象. promise对象有以下几个方法:state,always,then,prom ...
- jxl读取excel
String path=""; String path2=""; File file = new File(path); File file2 = new Fi ...