如: 
文件名  位置              大小  文件组 
DB    d:\DB.mdf        50G    PRMARY 
DB1    d:\DB1_DATA.NDF  10MB  PRMARY 
DB2    d:\DB2_DATA.NDF  10MB  PRMARY 我的意思就是让第一个文件的 50个G怎么分配到后面2个文件中 

解决方案 »

  1.   

    db1,db2和db是不是在不同的文件组,
    如果是,在DB1 DB2的文件组上创建新表,然后把db中表的内容转移到新表中。然后删除db中的表,再收缩数据库 
      

  2.   

    恐怕在db文件里的表不少,这样转移代码编制恐怕很麻烦。
    建议另外建一个过渡库,用dts将老库中的所有对象转移过去;再重建新库,合理设定db1,db2等文件;再用dts将过渡库中的所有对象转移到新库中。前提条件: 老库有效备份,磁盘空间充裕
      

  3.   

    如: 
    文件名  位置              大小  文件组 
    DB    d:\DB.mdf        50G    PRMARY 
    DB1    d:\DB1_DATA.NDF  10MB  PRMARY 
    DB2    d:\DB2_DATA.NDF  10MB  PRMARY 我的意思就是让第一个文件的 50个G怎么分配到后面2个文件中 1.先备份到移动硬盘..2.利用Bcp工具     
        
         这种工具虽然在SQL    Server7的版本中不推荐使用,但许多数据库管理员仍很喜欢用它,尤其是用过SQL    Server早期版本的人。Bcp有局限性,首先它的界面不是图形化的,其次它只是在SQL    Server的表(视图)与文本文件之间进行复制,但它的优点是性能好,开销小,占用内存少,速度快。有兴趣的朋友可以查参考手册。     
        
         3.    利用备份和恢复     
        
         先对源数据库进行完全备份,备份到一个设备(device)上,然后把备份文件复制到目的服务器上(恢复的速度快),进行数据库的恢复操作,在恢复的数据库名中填上源数据库的名字(名字必须相同),选择强制型恢复(可以覆盖以前数据库的选项),在选择从设备中进行恢复,浏览时选中备份的文件就行了。这种方法可以完全恢复数据库,包括外键,主键,索引。   
        
         4.    直接拷贝数据文件     
        
         把数据库的数据文件(*.mdf)和日志文件(*.ldf)都拷贝到目的服务器,在SQL    Server    Query    Analyzer中用语句进行恢复:   
        
       EXEC    sp_attach_db    @dbname    =    ’test’,   
       @filename1    =    ’d:mssql7data    est_data.mdf’,   
       @filename2    =    ’d:mssql7data    est_log.ldf’     
         这样就把test数据库附加到SQL    Server中,可以照常使用。如果不想用原来的日志文件,可以用如下的命令:     
        
       EXEC    sp_detach_db    @dbname    =    ’test’   
       EXEC    sp_attach_single_file_db    @dbname    =    ’test’,   
       @physname    =    ’d:mssql7data    est_data.mdf’     
         这个语句的作用是仅仅加载数据文件,日志文件可以由SQL    Server数据库自动添加,但是原来的日志文件中记录的数据就丢失了。     
              
         5.    在应用程序中定制     
        
         可以在应用程序(PB、VB)中执行自己编写的程序,也可以在Query    Analyzer中执行,这种方法比较灵活,其实是利用一个平台连接到数据库,在平台中用的主要时SQL语句,这种方法对数据库的影响小,但是如果用到远程链接服务器,要求网络之间的传输性能好,一般有两种语句:   
        
       1>select    ...    into    new_tablename    where    ...   
       2>insert    (into)    old_tablename    select    ...    from    ...    where    ...   
         区别是前者把数据插入一个新表(先建立表,再插入数据),后者是把数据插入已经存在的一个表中,我个人喜欢后者,因为在编程的结构上,应用的范围上,第二条语句强于前者。     
        
         6.    SQL    Server的复制功能     
        
         SQL    Server提供了强大的数据复制功能,也是最不易掌握的,具体应用请参考相关资料,值得注意的是要想成功进行数据的复制工作,有些条件是必不可少的:   
        
         1>SQL    Server    Agent必须启动,MSDTC必须启动。     
        
         2>所有要复制的表必须有主键。     
        
         3>如果表中有text或image数据类型,必须使用with    log选项,不能使用with    no_log选项。   
        
         另外max    text    repl    size选项控制可以复制的文本和图像数据的最大规模,超过这个限制的操作将失败。   
        
         4>在要进行复制的计算机上,应该至少是隐含共享,即共享名是C$或D$…。     
        
         5>为SQL    Server代理使用的Windows    NT帐号不能是一个本地的系统帐号,因为本地的系统帐号不允许网络存取。   
        
         6>如果参与复制的服务器在另外的计算机域中,必须在这些域之间建立信任关系。本人从事的工作是数据库管理员,要维护多台服务器中的数据库,经常把某台服务器中的某个数据库移动到另外一台服务器
      

  4.   

       可以尝试使用文件组,http://blog.csdn.net/womode/archive/2009/12/11/4987743.aspx