具体问题解决:分离脚本

具体问题解决:分离脚本

  有时候需要从一个服务器转移数据库到另一个。如果打算一下子分离所有数据库,那么下面的脚本就是有用了。
 
生成分离脚本:
 
SELECT DISTINCT 'use master;' + Char(10) + 'GO' + Char(10)                 
+ 'ALTER DATABASE [' + CONVERT(VARCHAR(500), Db_name(database_id)) + '] '
+ 'SET SINGLE_USER WITH ROLLBACK IMMEDIATE'
+ Char(10) + 'use master;' + Char(10) + 'GO'
+ Char(10)
+ 'EXEC master.dbo.sp_detach_db @dbname = N'
+ '''' + CONVERT(VARCHAR(500), Db_name(database_id)) + ''''
+ ';' + Char(10)
+ 'GO' + Char(10)
FROM master.sys.master_files WHERE Db_name(database_id) NOT IN ( 'master', 'model', 'msdb', 'tempdb' )

 

这个脚本生成了需要分离数据库的脚本。在where子句中排除了四个系统数据库。

 
 
附加数据库操作脚本:
 
  下面将生成一个脚本来分离数据库。确保运行在原服务器上。因为一旦你分离数据库,数据库将在原来的服务器上消失。
  脚本基于一个重要假设,假定每个数据库只包含一个数据文件和一个日志文件。如果有数据库实例带有多个数据或者日志文件,还要手动分离。另外,脚本假定源和目标服务器有相同的文件路径。如果日志或者数据文件路径不同,也需要重新替换生成的脚本。
 

SELECT DISTINCT 'use master;' + Char(10) + 'GO' + Char(10)                 
+ 'CREATE DATABASE [' + CONVERT(VARCHAR(500), Db_name(x.database_id)) + ']'
+ ' ON ' + Char(10) + '( physical_name = N' + ''''
+ x.physical_name + '''' + '),' + Char(10)
+ '( physical_name = N' + '''' + y.physical_name + '''' + ')'
+ Char(10) + ' FOR ATTACH' + Char(10)
+ 'GO' FROM master.sys.master_files x, master.sys.master_files y
WHERE Db_name(x.database_id) NOT IN ( 'master', 'model', 'msdb', 'tempdb' )
AND x.database_id = y.database_id AND x.physical_name LIKE '%mdf'
AND
y.physical_name LIKE '%ldf'

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119723.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何查看linux服务器cuda_[882]如何查看windows和linux的CUDA版本

    如何查看linux服务器cuda_[882]如何查看windows和linux的CUDA版本linux查看cuda版本cuda一般安装在/usr/local/cuda/路径下,该路径下有一个version.txt文档,里面记录了cuda的版本信息cat/usr/local/cuda/version.txt如何查看windows的CUDA版本CUDA是什么?CUDA(ComputeUnifiedDeviceArchitecture),是显卡厂商NVIDIA推出的运算平台。CU…

    2022年10月21日
    3
  • Android SDK下载安装及环境配置

    Android SDK下载安装及环境配置前面两步,我们已经配置了JDK变量环境,并安装好了Eclipse,通过这两步之后Java的开发环境就准备好了,如果我们只是开发普通的JAVA应用程序的话,那么到这里就可以了。但如果我们要通过Eclip

    2022年7月2日
    25
  • mac idea 激活码【在线注册码/序列号/破解码】

    mac idea 激活码【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    77
  • java基础API

    java基础APIJava常用类库1.API(1)ApplicationProgrammingInterface,应用程序接口。是一些预先定义的类和接口,或指软件系统不同组成部分衔接的约定。(2)API说明文档API文档查看方式:第一步选择包,第二步,选择类或接口,第三步查看类和接口的使用说明,右边的区域。右边的区域分为五块,分别为类的定义和功能介绍、属性的介绍、构造器的介绍、构造器的介绍、方法的列表、每个方法的使用详细说明。2、java.lang包(1)这是我们api中最基础的一个包(2)该包下面的

    2022年7月9日
    21
  • 算法笔记–sg函数详解及其模板

    算法笔记–sg函数详解及其模板

    2022年3月5日
    49
  • mysql面试50题_面试三道题思考几分钟

    mysql面试50题_面试三道题思考几分钟一、基础笔试命令考察要求:每两个同学一组,一个口头考,一个上机实战作答,每5个题为一组,完成后换位1.开启MySQL服务2.检测端口是否运行3.为MySQL设置密码或者修改密码4.登陆MySQL数据库5.查看当前数据库的字符集6.查看当前数据库版本7.查看当前登录的用户8.创建GBK字符集的数据库oldboy,并查看已建库完整语句9.创建用户oldboy,使…

    2022年8月27日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号