--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 数据库降级及数据转移的更多相关文章

  1. sql server 2008 把远程的数据库的数据转移到本地数据数据库里

    如题:把远程的数据库对应表里的数据转移到本地数据数据库的对应表里 比如把192.168.188.160的DB的A表的数据转移到本地的DB的A表里 第一步:连接远程服务器前准备 exec sp_addl ...

  2. sqlite升级--浅谈Android数据库版本升级及数据的迁移

    Android开发涉及到的数据库采用的是轻量级的SQLite3,而在实际开发中,在存储一些简单的数据,使用SharedPreferences就足够了,只有在存储数据结构稍微复杂的时候,才会使用数据库来 ...

  3. 云服务器 ECS Linux 系统盘数据转移方法

    转自:https://help.aliyun.com/knowledge_detail/41400.html 问题描述 购买云服务器 ECS Linux 服务器时,未购买数据盘,使用一段时间后,随着业 ...

  4. sql server2008数据库复制实现数据同步常见问题

    sql server2008数据库复制实现数据同步常见问题 在原作者基础上追加 sql server2008数据库复制实现数据同步常见问题 23.发布 'xx' 的并发快照不可用,因为该快照尚未完全生 ...

  5. MySQL数据转移至SQL Server详解

    最近有个活是mysql数据转移到sql server 2012,直接手动转工作量太大,发现网上有工具教程,则记录一下. 一.安装MySQL ODBC驱动为MySQL安装Connector/ODBC驱动 ...

  6. SQLServer2012数据库降级至SQLServer2008R2的方法

      一.  背景 因为对方的客户的服务器安装的数据版本2012,公司开发同事需要客户数据库的备份数据,但是公司数据版本是2008R2的,无法还原. 由于2012备份无法直接还原至2008R2(MSSQ ...

  7. 轻松快速实现MySql数据向SQLServer数据转移

    转移数据的方式其实园子里各位亲友已经写过不少了,这里挑一种常用的ODBC数据转移,主要是把每个步骤尽可能完善讲到,下次直接按文章从头到尾看一遍,可以在最短时间完成数据转移. 这里用到的工具有MYSQL ...

  8. finedb(内置的HSQL数据库)迁移数据到MySQL

    finedb(内置的HSQL数据库)迁移数据到MySQL 1. 前言 在FineBI中,决策平台的数据(用户.角色.组织机构.权限等信息)是存储在finedb数据库中的,默认情况下finedb是一个内 ...

  9. sql server 数据库复制实现数据同步常见问题(不定期更新)

    sql server2008数据库复制实现数据同步常见问题 在原作者基础上追加 sql server2008数据库复制实现数据同步常见问题 23.发布 'xx' 的并发快照不可用,因为该快照尚未完全生 ...

随机推荐

  1. Entity Framework异步查询和保存

    EF6开始提供了通过async和await关键字实现异步查询和保存的支持(.net 4.5及更高版本).虽然不是所有的操作都能从异步中获益,但是耗时的操作.网络或IO密集型任务中,使用异步可以提升客户 ...

  2. python index()函数

    python内置index()函数 index() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python ...

  3. AtCoder Grand Contest 031题解

    题面 传送门 题解 比赛的之后做完\(AB\)就开始发呆了--简直菜的一笔啊-- \(A - Colorful\ Subsequence\) 如果第\(i\)个字母选,那么它前面任意一个别的字母的选择 ...

  4. SP16580 QTREE7 - Query on a tree VII(LCT)

    题意翻译 一棵树,每个点初始有个点权和颜色(输入会给你) 0 u:询问所有u,v路径上的最大点权,要满足u,v路径上所有点颜色相同 1 u:反转u的颜色 2 u w:把u的点权改成w 题解 Qtree ...

  5. [转] Linux 中提高 VsFTP 服务器的安全性

    FTP是互联网应用中的一个元老级人物了,其方便企业用户文件的共享.但是,安全问题也一直伴随在FTP左右.如何防止攻击者通过非法手段窃取FTP服务器中的重要信息;如何防止攻击者利用FTP服务器来传播木马 ...

  6. java集合类学习笔记之HashMap

    1.简述 HashMap是java语言中非常典型的数据结构,也是我们平常用的最多的的集合类之一.它的底层是通过一个单向链表(Node<k,v>)数组(也称之为桶bucket,数组的长度也叫 ...

  7. type=file 自定义文件默认可选类型

    <input type="file" accept=".csv, application/vnd.openxmlformats-officedocument.spr ...

  8. 2019.2.14 t2 程序调试

    代码: #include <cstdio> #include <iostream> #include <cstring> #include <algorith ...

  9. ES6 (一)变量声明方法 & 解构赋值

    就是最新的JavaScript 原来的是var,要求不严格,不能限制修改,函数级 es6要求严格 1.防止重复声明 let      变量=var const 常量 2.控制修改 const常量不能修 ...

  10. 关闭tensorflow运行时的警告信息

    执行简单的矩阵相乘的程序: import tensorflow as tf m1 = tf.constant([[3,3]]) m2 = tf.constant([[2],[3]]) product ...