zoukankan      html  css  js  c++  java
  • 数据库开发批量附加数据库

    1. --目前只适合SQL2005,SQL2000的不行
    2. --批量附加数据库备份例子:   
    3. --exec attach_db_pro 'c:\program files\microsoft sql server\data'   
    4.   
    5. if object_id('attach_db_pro'is not null  
    6. drop procedure attach_db_pro   
    7. go   
    8.   
    9.   
    10. create procedure attach_db_pro   
    11. @dir nvarchar(520)   
    12. as  
    13. declare @dbname varchar(20)   
    14. declare @filename nvarchar(520)   
    15. declare @name sysname   
    16. declare @temp_db_name varchar(20)   
    17. declare @i int  
    18. declare my_cursor cursor  
    19. for    
    20.     select  db_name(dbid) dbname,name,filename from master..sysaltfiles   
    21.     open my_cursor   
    22.     fetch next from my_cursor into @dbname,@name,@filename   
    23.     while  @@fetch_status = 0   
    24.     begin  
    25.           set @temp_db_name = @dbname   
    26.           set @i = 1   
    27.           print 'exec sp_attach_db @db_name = ' + @dbname + ',@filename' + convert(varchar,@i) + ' = ''' + @dir + '\' + @name + right(@filename,4)+''''   
    28.           fetch next from my_cursor into @dbname,@name,@filename   
    29.           while @@fetch_status = 0 and @temp_db_name = @dbname   
    30.           begin  
    31.                   set @i = @i + 1   
    32.                   print ',@filename' + convert(varchar,@i) + ' = ''' + @dir + '\'+@name+right(@filename,4)+''''   
    33.                   fetch next from my_cursor into @dbname,@name,@filename   
    34.           end  
    35.           print ''  
    36.     end  
    37. close my_cursor   
    38. deallocate my_cursor   
    39. go  

    或者使用以下的办法来生成附加数据库的角本.
     private static  void att_database()
            {
                string tmp = "";
                FileInfo info = null;
                string[] s = Directory.GetFiles(@"D:\03backup\JujuyaDataBase\WebsiteDatabase","*.mdf");
                foreach (string str in s)
                {
                    info = new FileInfo(str);
                    Logs.Log.WriteLog("EXEC sp_attach_db @dbname = N'" + info.Name.Replace(".mdf","") + "'"+
                        " ,@filename1 = N\'D:\\03backup\\JujuyaDataBase\\WebsiteDatabase\\" + info.Name +"'"+
                        " ,@filename2 = N\'D:\\03backup\\JujuyaDataBase\\WebsiteDatabase\\" + info.Name.Replace(".mdf", "_log.LDF") + "'"
                        );               
                }      
            }

  • 相关阅读:
    repeater 结合checkbox批量删除
    (转)用JS判断ckeditor3.6版本编辑器内容为空的方法
    把数据库中的null作为条件查询应该用is
    注意 reader["yjID"] == DBNull.Value而不是null
    (转)第三方登录(QQ登录)开发流程详解
    (转)TortoiseSVN使用简介
    dropdownlist 二级联动
    关于服务器防火墙和discuz论坛的问题
    (转)Discuz!NT图文安装教程
    maven 基础
  • 原文地址:https://www.cnblogs.com/Leung/p/1541772.html
Copyright © 2011-2022 走看看