`
wsql
  • 浏览: 11774101 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

批量分离和附加数据库

 
阅读更多

usemaster
go
declare@detachnvarchar(4000)
set@detach=''
select@detach=@detach+char(13)+'execsp_detach_db'+quotename(Name)+',''true'''frommaster..sysdatabaseswhereNamelike'Lonigo%'
anddbid>4
exec(@detach)
--EXECsp_detach_db'+@name+','+'true'

go
usemaster
go
/**//***********************************************************************************************************************
說明:@file顯示格式為'E:\data',路徑有空格時加上雙引號如:'E:\"Data bak"'
禁止數據庫名為'.'圓點。如:HR.hr.mdf/HR.hr.ldf在文件名存在兩個圓點

功能:附加數據庫

**********************************************************************************************************************
*/

createprocDataAttach(@filenvarchar(100),@file1nvarchar(100)=@file)
as

declare@mdf1nvarchar(200),@mdf2nvarchar(200),@ldf1nvarchar(200),@ldf2nvarchar(200)

select@mdf1='dir/b/o/s'+@file+'*.mdf',@ldf1='dir/b/o/s'+@file1+'*.ldf',
@mdf2='dir/b/o'+@file+'*.mdf',@ldf2='dir/b/o'+@file1+'*.ldf'

ifobject_id('tempdb..#ta')isnotnull
droptable#ta
createtable#ta(IDintidentity(1,1),FNamenvarchar(256),DataNamenvarchar(256))
insert#ta(FName)execmaster..xp_cmdshell@mdf1
insert#ta(FName)execmaster..xp_cmdshell@ldf1

ifobject_id('tempdb..#tb')isnotnull
droptable#tb
createtable#tb(IDintidentity(1,1),FNamenvarchar(256))
insert#tb(FName)execmaster..xp_cmdshell@mdf2
insert#tb(FName)execmaster..xp_cmdshell@ldf2

--EXECUTEmaster.dbo.xp_fileexistN'E:LonigoBrandAgencyLonigoBrandAgency_Data.MDF'

updatea
setDataName=b.FName
from#taajoin#tbbonreverse(left(reverse(a.FName),charindex('',reverse(a.FName))-1))=b.FName

update#ta
setDataName=casewhencharindex('_',DataName)>0then
casewhenreverse(left(reverse(DataName),charindex('_',reverse(DataName))-1))in('Data.MDF','log.LDF')
thenreverse(stuff(reverse(DataName),1,charindex('_',reverse(DataName)),''))
elsereverse(stuff(reverse(DataName),1,charindex('.',reverse(DataName)),''))end
elseleft(DataName,charindex('.',DataName)-1)end



if(selectcount(1)from#taawhereexists(select1frommaster..sysdatabaseswhereName=a.DataName))>0
begin
declare@errornvarchar(1000)
select@error=isnull(@error+',','')+DataNamefrom#taawhereexists(select1frommaster..sysdatabaseswhereName=a.DataName)groupbyDataName
print'已存在數據庫'+@error
end

if1>0
begin
declare@snvarchar(4000),@s1nvarchar(4000)
set@s=''
select@s=@s+char(13)+
'EXECsp_attach_db@dbname=N'+quotename(DataName,'''')+',@filename1=N'''+
max(casewhenFNamelike'%.MDF'thenFNameelse''end)+''',@filename2=N'''+
max(casewhenFNamelike'%.LDF'thenFNameelse''end)+'''',@s1=isnull(@s1,'')+DataName+char(13)
from#tata
whereFNameisnotnull
and(selectcount(1)from#tatcwhereDataName=ta.DataName)=2--記錄為2
andnotexists(select1frommaster..sysdatabaseswhereName=ta.DataName)
groupbyDataName
--print@s
exec(@s)
end

if@@error<>0
print'附加失敗'+char(13)+@s1
else
print'附加成功'+char(13)+@s1

go


select*from#ta

--execDataAttach'E:\LonigoData'

分享到:
评论

相关推荐

    u8批量附加数据库工具

    u8批量附加数据库工具 u8批量附加数据库工具 u8批量附加数据库工具 u8批量附加数据库工具 u8批量附加数据库工具 u8批量附加数据库工具

    SQL数据库批量备份、恢复、删除、分离、附加

    3.软件功能包括批量备份、批量恢复、批量删除、批量分离、批量附加 4.在执行批量恢复和批量删除时,请先做好备份,以免数据丢失 5.对于用友软件的删除操作,年度账套参数信息的删除只支持T3、T6产品 未注册软件,...

    Server 2000 批量附加数据库工具【2012修复版】

    PS:这个工具批量附加数据库相当给力,分离数据库也是秒分离,快得很爽 Server 2000 批量附加数据库工具 【版本未知,2012年6月21日亲测有效】 工具操作简介: 分离数据库不能批量,只能选中后右键分离; 附加...

    批量附加SQL数据库.rar

    第一:运行中的数据库文件是不能复制的,你可以先停止sql服务然后复制,或者将数据库分离,再复制 ... 这是一个批量附加数据库的便捷工具,如果有很多的库,一个个的去处理还是有点累的,用这个工具就方便多了。

    Server 2000 批量附加数据库工具

    Server 2000 批量附加数据库工具 【版本未知,2011年6月20日亲测有效】 工具操作简介: 分离数据库不能批量,只能选中后右键分离; 附加数据库,可以批量附加。请先定位到文件夹,点击【搜索数据】按钮,然后选中第...

    SQL SERVER批量附加和分离工具

    支持SQL SERVER批量进行附加数据库和分离数据库的操作

    附加分离数据库工具.exe

    批量附加附加分离数据库工具.exe

    SQL Server2008数据库分离和附加

    SQL_Server2008数据库分离和附加的方法

    SQL附加分离数据库

    可以批量进行附加分离SQL数据库,可以方便的批量数据库挂靠

    msdeSQL2000 简单数据库附加,备份,分离工具

    MSDE 数据库管理工具 可进行 简单数据库附加,备份,分离

    sql批量附加工具

    SQL批量附加数据库就是将主数据库原样不动的重新安装到新的服务器上面。对于分离一个数据库来说,我们可以用Manage Studio界面或者存储过程。但是对于每一种方法都必须保证没有用户使用这个数据库.接下来所讲的都是...

    数据库附加及恢复工具

    该工具可以非常简单的进行数据库的备份、恢复、分离、附加,执行升级语句等操作,还可以解除安装SQLServer或MSDE时挂起的现象。

    达梦数据库_SQL语言手册

    附加分离数据库 第章一致性和并发性 事务相关语句 事务的开始 事务的结束 保存点相关语句 设置事务隔离级及读写特性 手动上锁语句 第章存储模块 存储模块的定义 存储模块的删除 存储模块的控制语句 ...

    Visual C++程序开发范例宝典 - 第8章

    第8章 数据库技术 8.1 连接数据库 实例264 使用ODBC DSN连接SQL Server数据库 实例265 用ADO动态连接数据库 8.2 添加数据 实例266 利用INSERT语句批量插入数据 ...实例292 附加数据库 实例293 分离数据库

    sql server 简单管理工具

    适合对SQLSERVER 多实例数据库批量管理,可以批量执行SQL语句,查询至表格并导出.批量备份,批量还原,批量删除,批量附加,批量分离,批量收缩等.

    NetCMSv1.7.0免安装版

    该版本为免安装版,直接附加数据库即可,里面有测试数据可以删改!  NetCMS是基于ASP.NET2.0开发的网站内容管理系统,程序完全开源,没有任何文件加密, 不需要注册任何组件,完全开源方便您二次开发。模板与程序...

    实用工具大礼包(下载即用)

    包括四大内容:个人工具 数据管理 网络程序 文件管理 ...数据管理有:备份数据源 分离SQL Server数据库 附加数据库 利用图片加密数据 配置ODBC数据源 修改表头加密数据库 邮政汇款打印程序 ……………………

    C# winform典型系统开发模板

     3.2.3 如何附加数据库 58  3.2.4 如何分离数据库 59  3.2.5 设置数据库模式 59  3.3 设计过程 61  3.3.1 主窗体 61  3.3.2 获取服务器名称 62  3.3.3 获取所有数据库 63  3.3.4 获取...

    NetCMS源码

    该版本为免安装版,直接附加数据库即可,里面有测试数据可以删改! NetCMS是基于ASP.NET2.0开发的网站内容管理系统,程序完全开源,没有任何文件加密, 不需要注册任何组件,完全开源方便您二次开发。 模板与程序分离...

    NetCMSV170src

    该版本为免安装版,直接附加数据库即可,里面有测试数据可以删改! NetCMS是基于ASP.NET2.0开发的网站内容管理系统,程序完全开源,没有任何文件加密, 不需要注册任何组件,完全开源方便您二次开发。 模板与程序分离...

Global site tag (gtag.js) - Google Analytics