您的位置:首页 > 大数据 > 人工智能

Repair the database using DBCC CHECKDB

2016-03-27 15:56 801 查看
So now if you want to place AdventureWorks2008R2 sample database in a single-user mode, then write the code

ALTER DATABASE AdventureWorks2008R2 SET SINGLE_USER;


  The above code would wait indefinitely if there is a lock on the database or users are connected to the database. So to overcome this situation, use the code below

ALTER DATABASE AdventureWorks2008R2 SET SINGLE_USER WITH ROLLBACK IMMEDIATE;


If the AUTO_UPDATE_STATISTICS_AYSYNC option for the database is ON, then you will be unable to place the database in single-user mode because the background thread that is used to update the statistics takes a connection against the database.

The DBCC offers two repair modes:

REPAIR_REBUILD: This performs a repair that does not lead to any data loss.

REPAIR_ALLOW_DATA_LOSS: This performs a repair and fixes to the corrupted database structures, and also results in data loss.

The following example will let you understand the whole concept, where I have used DBCC CHECKDB with REPAIR_ALLOW_DATA_LOSS option;

ALTER DATABASE AdventureWorks2008R2 SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
BEGIN TRANSACTION;
DBCC CHECKDB ('AdventureWorks2008R2', REPAIR_ALLOW_DATA_LOSS);
ALTER DATABASE AdventureWorks2008R2 SET MULTI_USER;

http://www.sqlservergeeks.com/repair-the-database-using-dbcc-checkdb/ https://msdn.microsoft.com/en-us/library/ms176064.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: