• 数据库开发批量附加数据库


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

  • 相关阅读:
    vue.js3: 旋转图片并保存(vue@3.2.37)
    vue.js3: 图片的反色/灰度(黑白)/褐色并保存(vue@3.2.37)
    chrome:配置console控制台显示时间戳(chrome 105.0.5195.102)
    vue.js3:图片镜像(翻转)并保存(vue@3.2.37)
    vue.js3: 多张图片合并(vue@3.2.37)
    javascript:null和undefined的区别(chrome 104.0.5112.101)
    文本多行替换
    FreeRTOS 多核通信MessageBuffer
    IAR Visual State 状态机 代码生成
    C/C++编译器支持 __FILE_NAME__ 获取文件名,不显示文件路径
  • 原文地址:https://www.cnblogs.com/Leung/p/1541772.html
Copyright © 2020-2023  润新知