Symptomy
Załóżmy, że masz bazę danych zawierającą grupy plików tylko do odczytu w programie Microsoft SQL Server 2014. Po uruchomieniu polecenia DBCC CHECKDB w bazie danych polecenie DBCC nie może utworzyć migawki bazy danych dla bazy danych. Jeśli nie ma innego połączenia z bazą danych, Operacja DBCC zostanie ukończona bez błędów. Wyświetlany jest jednak następujący komunikat o błędzie:
Polecenie DBCC CHECKDB nie sprawdza spójności wykazu programu SQL Server ani brokera usług, ponieważ nie można utworzyć migawki bazy danych lub określono polecenie WITH TABLOCK.
Jeśli istnieją inne połączenia z bazą danych, Operacja DBCC kończy się niepowodzeniem i zostanie wyświetlony następujący komunikat o błędzie:
Msg 5030, poziom 16, stan 12, baza danych wiersza 1The nie może zostać zablokowana w celu wykonania tej operacji. Msg 7926, poziom 16, stan 1, 1Check liniowa, przerwano instrukcję. Nie można zaznaczyć bazy danych, ponieważ nie można utworzyć migawki bazy danych, a nie można zablokować bazy danych ani tabeli. Zobacz dokumentację książki online, aby uzyskać szczegółowe informacje o tym, kiedy to zachowanie jest oczekiwane i jakie obejścia występują. Zobacz też poprzednie błędy, aby uzyskać więcej informacji.
Rozwiązanie
Informacje o aktualizacji zbiorczej
Ten problem został po raz pierwszy rozwiązany w poniższej zbiorczej aktualizacji programu SQL Server.
Każda nowa Zbiorcza aktualizacja programu SQL Server zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji zbiorczej. Zalecamy pobranie i zainstalowanie najnowszych aktualizacji zbiorczych programu SQL Server:
Więcej informacji
Aby odtworzyć ten problem, uruchom następujące polecenia w programie SQL Server:
-- Open a new query that is named conn1, and then create a new database. CREATE DATABASE DbTest GO -- Add a new file group. ALTER DATABASE DbTest ADD FILEGROUP FGTest GO -- Add a file to the new file group. ALTER DATABASE DbTest ADD FILE (NAME=DbTest_Data2, FILENAME=''C:\temp\DbTest_Data2.ndf') TO FILEGROUP FGTest GO -- Change the file group to read-only. ALTER DATABASE DbTest MODIFY FILEGROUP FGTest READONLY GO -- Run the DBCC CHECK command in the conn1 query. DBCC CHECKDB (DbTest) -- The DBCC CHECK command runs correctly. However, you may receive the following message: "DBCC CHECKDB will not check SQL Server catalog or Service Broker consistency because a database snapshot could not be created or because WITH TABLOCK was specified." -- Open a new query window that is named conn2, and then set the database as DbTest. This action opens a connection to the DbTest database. -- Return to the conn1 query, and run the DBCC command again. DBCC CHECKDB (DbTest) -- Notice the error message that is mentioned in the "Symptoms" section.
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "dotyczy".