我是刚刚上班 数据库还不是很强
我现在有个这样难题请教高手
现在我的数据库里面有 几十万笔数据
问题是数据库坏了 怎么把里面的几十万笔数据 导出到另外好的数据库中
再帮坏的数据库新建个 把导出的数据再导到好的新建的好的数据库中表达的意思 希望强人们明白 现在是怎么把坏的数据库里面的数据导出来 是sql 2000的数据库求救!!!!!!!!!!!!

解决方案 »

  1.   

    还真的不清楚,建议你去sql server版问一下!
      

  2.   

    你先试试把DATA目录下的数据文件拷出来,然后在别的数据库上新建一个相同文件名,相同路径的数据库,再把数据文件拷进去,看能不能用
      

  3.   

    一、设置数据库为紧急模式1.停掉SQL Server服务。2.修复前先将数据库文件XXX_Data.mdf和XXX_Data.log文件进行备份(XXX为要修复的数据库名)。3.把应用数据库的数据文件XXX_Data.mdf移走;(XXX为要修复的数据库名)。4.重启SQL Server服务。5.重新建立一个同名的数据库XXX。6.再次停掉SQL服务。7.把原来移走的数据文件(XXX_Data.mdf)再覆盖回来(只需数据文件,日志文件不需要)。8.运行以下语句,把该数据库设置为紧急模式。Use Master
    Go
    sp_configure 'allow updates', 1
    reconfigure with override
    Go执行结果:DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。已将配置选项 'allow updates' 从 0 改为 1。请运行 RECONFIGURE 语句以安装。------------------------------------------------------------------------------------
    9.接着运行如下语句(XXX为要修复的数据库名)。
     
    update sysdatabases set status = 32768 where name = 'XXX' 执行结果:(所影响的行数为 1 行)------------------------------------------------------------------------------------10.运行以下语句,把应用数据库设置为Single User模式(XXX为要修复的数据库名)。sp_dboption 'XXX', 'single user', 'true' 执行结果: 命令已成功完成。------------------------------------------------------------------------------------
    11. 做DBCC CHECKDB ,运行如下语句(XXX为要修复的数据库名)。DBCC CHECKDB('XXX') 
    执行结果:'XXX' 的 DBCC 结果。'sysobjects' 的 DBCC 结果。对象 'sysobjects' 有 273 行,这些行位于 5 页中。'sysindexes' 的 DBCC 结果。对象 'sysindexes' 有 202 行,这些行位于 7 页中。'syscolumns' 的 DBCC 结果。………
    -------------------------------------------------------------------------------------12. 运行以下语句把系统表的修改选项关掉(XXX为要修复的数据库名)。sp_resetstatus "XXX"  
    go
    sp_configure 'allow updates', 0
    reconfigure with override
    Go执行结果:在 sysdatabases 中更新数据库 'XXX' 的条目之前,模式 = 0,状态 = 28(状态 suspect_bit = 0),没有更新 sysdatabases 中的任何行,因为已正确地重置了模式和状态。没有错误,未进行任何更改。DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。已将配置选项 'allow updates' 从 1 改为 0。请运行 RECONFIGURE 语句以安装。-------------------------------------------------------------------------------------
    二、用SELECT语句从设为紧急模式的数据内导出数据1.新建数据库名为TEST。2.在当前紧急模式的XXX数据库下执行如下语句,注意是否有错误提示(如果有错请多次执行如下语句)。Declare @CName varchar(255)
    Declare @ACName varchar(255)
    declare @Dbname varchar(255)
    Set @DbName = 'test.dbo.'
    Set @ACName = ''
    DECLARE authors_cursor CURSOR FOR 
    Select o.name
    From sysobjects o
    Where Type = 'u' and o.name not in (select name from test.dbo.sysobjects where type = 'u')
    OPEN authors_cursor
    FETCH NEXT FROM authors_cursor 
    INTO @CName
    WHILE @@FETCH_STATUS = 0
    BEGIN
       Set @ACName = 'Select * INTO ' + @DbName + @CName + ' From ' + @CName 
       Exec( @AcName )
       FETCH NEXT FROM authors_cursor 
       INTO @CName
    print @CName
    END
    CLOSE authors_cursor
    DEALLOCATE authors_cursor
    GO3.删除设为紧急模式的数据库,再新建同名的数据库XXX,并重新创建新的表、视图、存储过程。4.用DTS把TEST数据库内的数据导到数据库XXX内。5.数据修复完毕,请认真检查数据修复结果。
    这样试一下看看行不行吧,不行我也没有办法了