Sammanfattning
Korrekt sätt att köra ett DBCC CHECKDB-eller DBCC CHECKTABLE-uttryck med giltiga REPARATIONs alternativ är att starta SQL Server normalt och sedan explicit ange databasen i enanvändarläge. Du kan göra detta från företags hanteraren eller analys funktionen för frågor.Från Enterprise Manager:
-
Högerklicka på databasens namn och klicka sedan på Egenskaper.
-
Klicka på alternativi dialog rutan Egenskaper .
-
Välj alternativet Single User och klicka sedan på OK.
Från Query Analyzer:
Use mastergosp_dboption dbname, single, true
När databasen är i enanvändarläge kan du köra DBCC CHECKDB-eller DBCC CHECKTABLE-uttryck med de giltiga REPARATIONs alternativen.
Om du använder SQL Server 2005
Mer information om hur du startar SQL Server i enanvändarläge finns på följande Microsoft Developer Network (MSDN)-webbplats:
http://msdn2.microsoft.com/en-us/library/ms188236(en-US,SQL.90).aspx
Mer information
Om du startar SQL Server i enanvändarläge (med-m) och sedan kör en DBCC CHECK-programsats (CHECKDB eller CHECKTABLE) med ett av de giltiga REPARATIONs alternativen genererar SQL Server följande fel meddelande:
Reparations satsen bearbetades inte. Databasen måste vara i enanvändarläge. DBCC-körningen är klar. Om fel meddelanden om DBCC skrivs ut kontaktar du yoursystem administratör.
Det föregående fel meddelandet motsvarar fel nummer 7919. följande exempel illustrerar problemet:
-
Starta SQL Server från kommando tolken med hjälp av:Sqlservr-c-m
-
Skapa en anslutning till SQL Server med hjälp av frågeverktyget och kör sedan följande kod:
Use pubsgoDBCC CHECKTABLE(Authors, REPAIR_REBUILD )go
De här anvisningarna orsakar felet som visas i början av avsnittet "Mer information". Det här är avsiktligt. När du startar SQL Server i enanvändarläge anger du inte uttryckligen statusen för varje databas i enanvändarläge. Det gör du bara för huvud databasen. I DBCC CHECK-satsen kontrol LERAs emellertid den status för den specifika databasen som körs och om den inte är inställd för en enskild användare.