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") + "'"
                        );               
                }      
            }

  • 相关阅读:
    flask1 + jinja2 day88
    linux9
    linux8 redis集群槽+docker
    dsadfa
    redis
    aaa
    a
    题目
    java对含有中文的字符串进行Unicode编码
    Java转Double类型经纬度为度分秒格式
  • 原文地址:https://www.cnblogs.com/Leung/p/1541772.html
Copyright © 2011-2022 走看看