MSSQL数据库高版本迁移到低版本

起因是因为客户要把系统从阿里云迁移到本地服务器,阿里云上的数据库版本是MSSQL2016,客户提供的服务器是Server2008R2的,问题就来了,Server2008不支持2016版本,最后只能装的2012版本,那就需要从2016迁移到2012.

过程是一波三折,网上流传选择一下兼容模式,如下图

然后再去备份,不知道别人是怎么成功的或者是他们自己也没有成功,我反正最后还是报错,低版本不支持高版本。

最后没本法只能采用生成架构跟数据的脚本来进行导入了

好吧,好在我们数据量还不是很大,sql文件导出来也就不到1g。

貌似100M以上的sql文件在manager studio里面是会报内存不足的,解决的办法其实很简单,使用cmd下的osql命令,多大都不怕,唯一担心的只是时间长短而已。

osql –S localhost –d mydb –E –i D:\bf.sql  搞定


1、使用osql执行单个 Transact-SQL 语句

      在键入cmd与下面这一个类似的命令:

    osql -E -q "Transact-SQL statement"  

    例如:sql -E -q "use myDB select * from myTable"

    其中 -E 表示使用 Microsoft Windows NT 身份验证。

    也可以使用sa账户,具体可以看看上面的命令!

    而-q 表示运行 Transact-SQL 语句,但是在查询结束时不退出 osql。

    如要运行 Transact-SQL 语句并退出 osql,请使用 -Q 参数来代替 -q。

2、使用osql执行一个大脚本文件

     将该工具指向一个脚本文件,步骤:

    a.创建一个包含一批 Transact-SQL 语句的脚本文件(如 myfile.sql)。

    b.打开命令提示符,键入与下面类似的一个命令,然后按 ENTER 键:

    osql -E -i input_file

    其中input_file 是脚本文件及其完整路径。例如,如果脚本文件 myfile.sql 在 C:\users文件夹中,

    请将参数 myfile 替换为 C:\users\myfile.sql。

    该脚本文件的运行结果将出现在控制台窗口中。

    如果您想将运行结果定向到一个文件,请向上述命令中添加 -o output_file 参数。例如:

    osql -E -i input_file -o output_file

    其中output_file 是输出文件及其完整路径。

 

小插曲:过程中遇到无法对 数据库'UDS' 执行 删除,因为它正用于复制。 (.Net SqlClient Data Provider)

解决方案记录一下:

sp_removedbreplication 'UDS'

 DROP DATABASE UDS

 

转载于:https://www.cnblogs.com/xiaopotian/p/6930933.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值