zoukankan      html  css  js  c++  java
  • 附加目录中所有的数据库文件

    DECLARE @databasedir varchar(200)
    SET @databasedir = 'F:\SQLServer\Data\'

    /* 目录结构 */
    DECLARE @t table(id int identity(1,1),subdirectory nvarchar(255),depth int,i int)

    INSERT INTO @t(subdirectory,depth,i)
    EXEC master..xp_dirtree @databasedir,0,1

    DELETE FROM @t WHERE subdirectory NOT LIKE '%.mdf'
    DECLARE @filename nvarchar(255),@dbname nvarchar(255),@filename1 nvarchar(255),@subdirectory nvarchar(255)
    DECLARE @cmd nvarchar(4000)
    create table #smoPrimaryFileProp(property sql_variant NULL, value sql_variant NULL

    WHILE (SELECT COUNT(*FROM @t> 0
    BEGIN
        
    SELECT TOP 1 @subdirectory = subdirectory FROM @t
        
    SELECT @fileName = @databasedir+@subdirectory;
    BEGIN TRY
        
    SET @cmd = 'dbcc checkprimaryfile (N'''+ @fileName + ''' , 2)'

        
    TRUNCATE TABLE #smoPrimaryFileProp
        
    insert #smoPrimaryFileProp exec (@cmd)

        
    SELECT @dbname = CAST([value] AS nvarchar(255)) 
        
    FROM #smoPrimaryFileProp WHERE [property] = 'Database name'
        
        
    SELECT @filename1 = REPLACE(@fileName,'.mdf','_log.LDF');

        
        
    EXEC sp_attach_db 
        
    @dbname,
        
    @fileName,@filename1
        
    END TRY
    BEGIN CATCH
    END CATCH


        
    DELETE FROM @t WHERE subdirectory = @subdirectory
    END

    DROP TABLE #smoPrimaryFileProp
  • 相关阅读:
    Linux进程间通信分类 以及 pipe的原理实现
    单链表的快速排序
    再谈二分查找
    数据库范式
    二分查找法浅析
    C# Observer设计模式
    C# 交错数组浅析
    C语言初学 数学中带根号的复杂计算问题
    C语言初学 计算三角形面积问题
    C语言初学 简单定义圆的面积计算问题
  • 原文地址:https://www.cnblogs.com/goodspeed/p/1160221.html
Copyright © 2011-2022 走看看