X迅軟件解決數(shù)據(jù)質(zhì)疑
操作前備份數(shù)據(jù)庫(kù) 注意備份。
注:請(qǐng)將 issbakev8_branch替換成相應(yīng)軟件的數(shù)據(jù)庫(kù)名。
第1步.停止SQL Server的服務(wù),備份SQL Server安裝目錄下的\data子目錄一個(gè)issbakev8_branch_log.ldf(也有可能非此命名),和issbakev8_branch_data文件之后,并把LDF文件(issbakev8_branch_log.ldg)刪除。
2步3步4步在有數(shù)據(jù)的服務(wù)器電腦省略直接看第5步。
5.重新啟動(dòng)SQL Server服務(wù),然后運(yùn)行如下命令:
Use Master
go
sp_configure 'allow updates', 1
reconfigure with override
go
begin tran
update sysdatabases set status = 32768 where name = 'issbakev8_branch'
--Verify one row is updated before committing
commit tran
go
6.停止SQL然后重新啟動(dòng)SQL Server服務(wù),然后運(yùn)行如下命令
(更換日志文件路徑地址):
use master
go
DBCC TRACEON(3604)
DBCC REBUILD_LOG
('issbakev8_branch',
'c:\Program Files\Microsoft SQL Server\MSSQL\Data\issbakev8_branch_log.ldf')
--在這里,請(qǐng)輸入你的數(shù)據(jù)庫(kù)的路徑
Go
7.停止SQL然后重新啟動(dòng)SQL Server服務(wù),然后運(yùn)行:
use master
go
update sysdatabases set status = 8 where name = 'issbakev8_branch'
go
sp_configure 'allow updates', 0
reconfigure with override
go
8.運(yùn)行dbcc checkdb(db_name) 檢查數(shù)據(jù)庫(kù)的完整性
9.修復(fù)數(shù)庫(kù)
--請(qǐng)?jiān)诓樵兎治銎髦袌?zhí)行下列語(yǔ)句.執(zhí)行前斷開(kāi)其它
所有數(shù)據(jù)庫(kù)連接,最好是斷開(kāi)網(wǎng)線
--如果不是該數(shù)據(jù)庫(kù)名,請(qǐng)將數(shù)據(jù)庫(kù)
--issbakev8_branch
--改為要修復(fù)的數(shù)據(jù)庫(kù)
USE master
Go
--單用戶模式
EXEC sp_dboption 'issbakev8_branch', 'single user', 'TRUE'
go
--數(shù)據(jù)庫(kù)檢查
DBCC CHECKDB ('issbakev8_branch')
Go
--如果返回結(jié)果出現(xiàn)了紅色的提示文字,說(shuō)明數(shù)據(jù)庫(kù)中存在錯(cuò)誤,需要修復(fù)
--數(shù)據(jù)庫(kù)修復(fù)
DBCC CHECKDB ('issbakev8_branch','repair_rebuild')
Go
--再次數(shù)據(jù)庫(kù)檢查,如果返回結(jié)果中沒(méi)有了紅色的提示文字,
說(shuō)明修復(fù)成功;
DBCC CHECKDB ('issbakev8_branch')
Go
--否則意味著還需要更高級(jí)別的修復(fù);嘗試將上面修復(fù)語(yǔ)句的
'repair_rebuild'換為'repair_allow_data_loss'再試,
之后再次檢查數(shù)據(jù)庫(kù)。
--如果還有錯(cuò)誤未修復(fù),請(qǐng)把這些信息以文字的方式發(fā)給我們
--退出前請(qǐng)一定要執(zhí)行以下語(yǔ)句返回到多用戶模式
EXEC sp_dboption 'issbakev8_branch', 'single user','FALSE'
go
--5、數(shù)據(jù)庫(kù)修復(fù)好后,最后執(zhí)行一下自增列的修復(fù)
use issbakev8_branch --可改成相應(yīng)的數(shù)據(jù)庫(kù)名
go
declare @tablename varchar(100)
declare test_cur cursor for
select object_name(id) from syscolumns
where status=128
open test_cur
fetch test_cur into @tablename
while @@fetch_status=0
begin
DBCC CHECKIDENT (@tablename, RESEED)
fetch test_cur into @tablename
end
close test_cur
deallocate test_cur
go

