sqlServer数据库库坏表的修复:
1.将数据库设置为单用户模式
exec sp_dboption ’库名’ ,’single_user’,’true’
2.修复表
dbcc CHECKTABLE(’表名’,REPAIR_ALLOW_DATA_LOSS)
3.将数据库设置回多用户模式
exec sp_dboption ’库名’ ,’single_user’,’false’
Net stop mssqlserver --停止服务
Net start mssqlserver --启动服务
/*****************检查损坏表****************/
DECLARE @table_name sysname
DECLARE ROY_table CURSOR FOR
SELECT name FROM sysobjects where xtype in ('u','s')
OPEN ROY_table
FETCH NEXT FROM ROY_table INTO @table_name
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT '--------------数据表'+@table_name + '的检查整理------------------'
DBCC CheckTable (@table_name)
PRINT '--------------数据表'+@table_name + '的检查整理完成------------------'
FETCH NEXT FROM ROY_table INTO @table_name
END
CLOSE ROY_table
DEALLOCATE ROY_table
1.将数据库设置为单用户模式
exec sp_dboption ’库名’ ,’single_user’,’true’
2.修复表
dbcc CHECKTABLE(’表名’,REPAIR_ALLOW_DATA_LOSS)
3.将数据库设置回多用户模式
exec sp_dboption ’库名’ ,’single_user’,’false’
Net stop mssqlserver --停止服务
Net start mssqlserver --启动服务
/*****************检查损坏表****************/
DECLARE @table_name sysname
DECLARE ROY_table CURSOR FOR
SELECT name FROM sysobjects where xtype in ('u','s')
OPEN ROY_table
FETCH NEXT FROM ROY_table INTO @table_name
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT '--------------数据表'+@table_name + '的检查整理------------------'
DBCC CheckTable (@table_name)
PRINT '--------------数据表'+@table_name + '的检查整理完成------------------'
FETCH NEXT FROM ROY_table INTO @table_name
END
CLOSE ROY_table
DEALLOCATE ROY_table