ITPub博客

首页 > 数据库 > SQL Server > ms sql 2000 下批量 附加/分离 数据库(sql语句)

ms sql 2000 下批量 附加/分离 数据库(sql语句)

SQL Server 作者:hgwangzhen 时间:2013-12-13 13:07:25 0 删除 编辑

此次公司要把MS SQL Server 2000 办事器上的数据库复制到新的办事器上面往,于是几百个数据库文件便交给我附减到新办事器上了ms <wbr><wbr>sql <wbr><wbr>2000 <wbr><wbr>下批量 <wbr><wbr>附减/分手 <wbr><wbr>数据库(sql语句)

夙昔一直没接触过这圆面的器械,于是果断谷歌了也百度了  找了很多举措也下载了很多的器械,有些确实能用,但我便逢到了很多成就以下:

1.我的办事器是win 2008 server 64位  而好多是在XP下运转的
2.我的办事器上安拆的数据库是2000 不是如古多用的2005或以上  很多是要在2005下的批量附减
3.有一个能日常运转,但就是附减不了.....怂爆了

念过用器械  也念过用php或java或c写一个小器械    但最后借是认为搞个SQL语句的便利
于是我翻找了很多人的代码后得出上面的代码  
运转情况:
办事器系统:win2008s 
数据库版本:mssql 2000 s3

代码:
create table tempFile(
Name nvarchar(255) Not Null,depth int Null, IsFile bit Null
)

create table smoPrimaryFileProp(
property sql_variant Null, value sql_variant Null
)

create table smoPrimayChildren(
status int,fileid int,name sysname,filename nvarchar(512)
)
GO
--以上三个表为暂时表  完成后可以删除  假如在2005以上的版本可使用暂时变量表

Insert Into tempFile Exec master.dbo.xp_dirtree "D:Program Files (x86)Microsoft SQL ServerMSSQLLibraryData",1,1

--以上便为十足要附减的数据库文件地点文件夹

Declare @Path varchar(2000),
@File nvarchar(255),
        @sql nvarchar(4000),
        @DataBase sysname
set @Path = "D:Program Files (x86)Microsoft SQL ServerMSSQLLibraryData"
-- @Path变量即为十足要附减的数据库文件地点的文件夹
Declare cur_File Cursor For 
    Select Name From tempFile As a Where IsFile=1 And Name Like "%.mdf"
  
Open cur_File
  
Fetch Next From cur_File Into @File
While @@Fetch_Status=0
Begin
    Set @sql = "dbcc checkprimaryfile (N"""+ @Path+ @File + """ , 2) With No_Infomsgs"
    Insert Into smoPrimaryFileProp Exec (@sql)

    Set @sql="dbcc checkprimaryfile (N""" +@Path+ @File + """ , 3) With No_Infomsgs"
    Insert Into smoPrimayChildren Exec (@sql)

    Select @DataBase=Quotename(Convert(nvarchar(255),value)),
         @sql=null        
    From smoPrimaryFileProp Where Convert(nvarchar(255),property)="Database name"
  
    Select @sql=Isnull(@sql+","+Char(13)+Char(10), "Create DataBase "+@DataBase+" On"+Char(13)+Char(10))+"(FileName=N"""+@Path+Right(Rtrim(filename),Charindex("",Reverse(Rtrim(filename)))-1)+""")"
    From smoPrimayChildren

    Exec(@sql+" For Attach")
  
    Print N"告成附减exd赹

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23283785/viewspace-1117810/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2010-02-02

  • 博文量
    1
  • 访问量
    3060