第一種
(轉貼自http://herald.seu.edu.cn/blog/dipper/articles/2733.aspx)
按下面的步骤处理:
1.新建一个同名的数据库
2.再停掉sql server(注意不要分离数据库)
3.用原数据库的数据文件覆盖掉这个新建的数据库
4.再重启sql server
5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)
6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用
数据库的脚本创建一个新的数据库,并将数据导进去就行了. (這裡很重要,務必在能夠訪問數據時,將該數據庫導入到一個新的數據庫中,因為當重啟sqlserver後就可能訪問不到了.)
USE MASTER
GO
SP_CONFIGURE 'ALLOW UPDATES',1 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 reconfigure with override
Go
sp_dboption '置疑的数据库名', 'single user', 'false'
Go
第二種
這種方法如果成功,那就可以不用再做其他處理,可以直接使用.
USE MASTER
GO
EXEC sp_detach_db @dbname ='gcs_asp' --可自定義,但與下面保持一致,MDF文件名可不同
EXEC sp_attach_single_file_db @dbname ='gcs_asp',@physname = 'f:\mssql\mssql\data\gcs_asp_Data.MDF'
GO
實際上比較正常的方法是
先倒出數據庫的所有sql腳本,再倒出數據,如access(*.mdb)
當建立新的數據庫時,就可在該庫中先執行sql腳本,然後導入數據