DBCC CHECKDB使用:
use master
declare @databasename varchar(255)
set @databasename=’需要修复的数据库实体的名称’
exec sp_dboption @databasename, N’single’, N’true’ –将目标数据库置为单用户状态
dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)
dbcc checkdb(@databasename,REPAIR_REBUILD)
exec sp_dboption @databasename, N’single’, N’false’–将目标数据库置为多用户状态
DBCC CHECKTABLE使用: --如果DBCC CHECKDB 检查存在错误,可以使用DBCC CHECKTABLE来修复。
use 需要修复的数据库实体的名称
declare @dbname varchar(255)
set @dbname=’需要修复的数据库实体的名称'
exec sp_dboption @dbname,’single user’,'true'
dbcc checktable(’需要修复的数据表的名称’,REPAIR_ALLOW_DATA_LOSS)
dbcc checktable(’需要修复的数据表的名称’,REPAIR_REBUILD)
exec sp_dboption @dbname,’single user’,'false'
DBCC DBREINDEX使用: --重建指定数据库中表的一个或多个索引
DBCC DBREINDEX('需要重建的表名称', '', 70) --70重建表上的所有索引 80重建表上的聚集索引
SQL日志文件LDF丢失生成方法:
1.我们使用默认方式建立一个同名的数据库。
2.停掉数据库服务器。
3.将刚才新生成的数据库的日志文件删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件。
4.启动数据库服务器。此时会看到数据库的状态为“置疑”。这时候不能对此数据库进行任何操作。
use master
go
sp_configure 'allow updates',1
go
reconfigure with override
go
update sysdatabases set status=-32768 where dbid=DB_ID('数据库名称')
go
dbcc rebuild_log('数据库名称','日志存放路径\数据库名称_log.ldf')
go
dbcc checkdb('数据库名称')
go
sp_dboption '数据库名称','dbo use only','false'
go
sp_configure 'allow updates',0
go
reconfigure with override
go