我拷入别人创建的SQL Server 2000数据库(Motor),其文件是Motor_Data.MDF、Motor_Log.LDF这二个文件,如何将这二个文件导入SQL Server 2000?以便在其环境中作进一步处理。还有1、如果只有Motor_Data.MDF文件,没有日志文件Motor_Log.LDF,能否导入SQL Server 2000?2、如果Motor_Data.MDF文件与日志文件Motor_Log.LDF的创建日期不一致,能否导入SQL Server 2000?

解决方案 »

  1.   

    关于SQL数据库丢失.LDF文件后附加数据库的方法 2006-11-2 16:30:54 ahots 相信很多朋友对SQL中的日志文件不慎删除后,附加MDF文件,提示LDF文件有问题,导致MDF无法附加的情况, 
    1、把需要附加的数据库的MDF文件改名; 2、建一个相同的数据库。库文件名称为要附加的数据库名。 3、打开服务管理器(通常情况下应该在托盘),停止服务 3、将新建的数据库文件的MDF文件删掉,并将原有的数据库mdf文件该为原来的名字 4、重启sql  server服务 ,此时数据库变为置疑状态 5、执行以下语句: 
    sp_configure  'allow updates',  1 reconfigure  with  override 
    update  sysdatabases  set  status='32768'  where  name='databasename' 
    DBCC  rebuild_log  ('databasename','日志路径\databasename.ldf') 
    update  sysdatabases  set  status='0'  where  name='databasename' 
    sp_configure  'allow updates',  0 reconfigure  with  override 
    重置数据库异常状态命令 
    sp_resetstatus 'database_name' 到此时,表面上数据库没有什么问题了,实际上此时数据库处于回避恢复模式。 新建一数据库,将原来的数据导入到新建的数据库中,完毕后将原来的数据库删除,新建, 然后将数据重新导入,就行了。 需要注意的是,SQL在进行数据导入导出的时候,原始表的主建信息会丢掉,所以需要注意以下。 SQL code简单来说就是1、建一个同名的数据库
    2、修改服务器设置:允许多系统目录进行直接修改
    3、停止SQL Server
    4、用原mdf文件覆盖新建库的数据库文件
    5、重启SQL Server(这时数据库应该是置疑)
    6、将数据库置为紧急状态:update master.dbo.sysdatabases set status = 32768 where name = dbname
    7、重建日志:dbcc rebulid_log('dbname', 'logfile') (可能不需要这一步。)
    8、数据库重新启动,然后再还原数据库状态用以下语句
          update master.dbo.sysdatabases set status = 16 where name = dbname
      

  2.   

    --MDF和.LDF格式的文件,用SQL Server 2000,企业管理器中,
    左边的树形目录中选中数据库,
    点右键-所有任务-附加数据库-选择mdf文件,ok
    sql中只有mdf文件时附加数据库,会报Error:不能使文件与不同的数据库相关 
    该问题可以尝试用如下步骤解决: 1.新建一个同名的数据库 2.再停掉sql server(注意不要分离数据库) 3.用要附加的数据文件覆盖掉这个新建的数据库 4.再重启sql server 5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名) USE MASTER 
    GO 
    SP_CONFIGURE 'ALLOW UPDATES',1 
    GO 
    RECONFIGURE WITH OVERRIDE 
    GO 
    UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='置疑的数据库名' 
    Go 
    sp_dboption '置疑的数据库名', 'single user', 'true' 
    Go 
    DBCC CHECKDB('置疑的数据库名') 
    Go 
    update sysdatabases set status =28 where name='置疑的数据库名' 
    Go 
    sp_configure 'allow updates', 0 
    GO 
    reconfigure with override 
    Go 
    sp_dboption '置疑的数据库名', 'single user', 'false' 
    Go 6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用数据库的脚本创建一个新的数据库,并将数据导进去就行了.