怎样将一个数据库的多个文件合并到两个数据库文件如果一个数据库有多个文件,如   
  database.mdf   
  database_log.ldf  
  database2.mdf   
  database2_log.ldf   
     
  这几个数据库文件属于一个数据库的文件来的,怎么将四个数据库文件怎样合并到成两个数据库文件呢(一个为数据文件,一个为日志文件)?   
  备份再还原还是这些文件。

解决方案 »

  1.   

    新建数据库,用DTS将原数据库的所有对象导入到新数据库中。
      

  2.   

    1、清除日志
    backup log db_name with no_log
    2、在企业管理器压缩文件,好像有选择请空一个文件的
    3、确认清空的文件可以在企业管理器数据库属性里删除
      

  3.   

    USE [你的库名]
    GO-- 1. 查出的数据文件对应的逻辑文件名(name 列是逻辑名, filename 是物理文件名)
    SELECT 
    name, filename 
    FROM sysfiles
    GO-- 2. 将要删除的数据文件和日志文件中的数据转移到其他文件并
    DBCC SHRINKFILE (N'data2' , EMPTYFILE) -- data2 是你要删除的数据文件的逻辑名(name列)
    DBCC SHRINKFILE (N'log2' , EMPTYFILE)  -- log2 是你要删除的日志文件的逻辑名(name列)
    GO-- 3. 删除文件
    ALTER DATABASE [你的库名]  
    REMOVE FILE log2      -- log2 是你要删除的日志文件的逻辑名(name列)ALTER DATABASE [你的库名]  
    REMOVE FILE data2   -- data2 是你要删除的数据文件的逻辑名(name列)
      

  4.   

    -- 4. 如果有需要, 删除文件组
    -- 当你被删除的数据文件放在某个文件组, 而且这个文件组仅包含这个数据文件时, 在删除数据文件后, 应该考虑删除文件组-- 这个查询可以查出文件组及包含的文件, 以协助你确定是否要进行删除文件组的操作
    SELECT 
    groupname = CASE WHEN F.groupid = 0 THEN N'LOG' ELSE G.groupname END,
    F.name, F.filename 
    FROM sysfilegroups G
    FULL JOIN sysfiles F
    ON G.groupid = F.groupid
    ORDER BY groupname
    -- 删除文件组使用类似这样的语句
    ALTER DATABASE [你的库名]  
    REMOVE FILEGROUP 文件组名称
      

  5.   

    try:
    http://topic.csdn.net/t/20041129/17/3599057.html
      

  6.   

    有个条件:清空文件必须保证同一个文件组有其他文件,也就是说你的两个数据文件是一个文件组的,两个log文件也是一样