可以直接复制数据库文件, xxx.mdf 和 

            用 sp_attach_db 

  下面的示例将   pubs   中的两个文件附加到当前服务器。  
   

EXEC   
  sp_attach_db   
  @dbname   
  =   
  N'pubs',   
    

   
    
    
    
  @filename1   
  =   
  N'c:\Program   
  Files\Microsoft   
  SQL   
  Server\MSSQL\Data\pubs.mdf',   
    
 
   
    
    
    
  @filename2   
  =   
  N'c:\Program   
  Files\Microsoft   
  SQL   
  Server\MSSQL\Data\pubs_log.ldf'


N表示Unicode的含义,就象类型中有varchar和nvarchar一样,一个Unicode字符占两个字节.使用N'的情况主要是在双字节系统环境中强制系统对每个字符用Unicode标准来解释,否则如果你的数据库.mdf文件是中文名而又不加N'的话,数据库加载后名称可能就变成乱码,因为系统按单字节处理字符造成!


............................................................


如果确认是SQL  

SERVER无法启动,请按照下面步骤操作:  
  1.重装SQL   SERVER(注意要保留原来数据库的数据库文件,日志文件可不要)  
  2.在SQL   Analysis中用sp_attach_db将数据库加到服务器  
   
  sp_attach_db用法:  
  sp_attach_db  
  将数据库附加到服务器。  
   
  语法  

sp_attach_db   
  [   
  @dbname   
  =   
  ]   
  'dbname'   
 
   
    
    
    
    
  ,   
  [   
  @filename1   
  =   
  ]   
  'filename_n'   
  [   
  ,...16   
  ]


   
  参数  

[@dbname   
  =]   
  'dbname'


   
  要附加到服务器的数据库的名称。该名称必须是唯一的。dbname   的数据类型为   sysname,默认值为   NULL。    
   

[@filename1   
  =]   
  'filename_n'


   
  数据库文件的物理名称,包括路径。filename_n   的数据类型为   nvarchar(260),默认值为   NULL。最多可以指定   16   个文件名。参数名称以   @filename1   开始,递增到   @filename16。文件名列表至少必须包括主文件,主文件包含指向数据库中其它文件的 系统 表。该列表还必须包括数据库分离后所有被移动的文件。  
   
  返回代码值  
  0(成功)或   1(失败)  
   
  结果集  
  无  
   
  注释  
  只应对以前使用显式   sp_detach_db   操作从数据库服务器分离的数据库执行   sp_attach_db。如果必须指定多于   16   个文件,请使用带有   FOR   ATTACH   子句的   CREATE   DATABASE。  
   
  如果将数据库附加到的服务器不是该数据库从中分离的服务器,并且启用了分离的数据库以进行复制,则应该运行   sp_removedbreplication   从数据库删除复制。  
   
  权限  
  只有   sysadmin   和   dbcreator   固定服务器角色的成员才能执行本过程。