В настоящее время я пытаюсь написать на SQL Server 2005 задание, которое автоматизирует процесс DBCC CHECKDB. По сути, я использую курсор для запуска и запуска DBCC CHECKDB для каждой базы данных в экземпляре. Иногда это работает, проходя через каждую базу данных и регистрируя ошибки в таблице, которую я разработал для этой цели, а иногда он только проходит через несколько баз данных и останавливается. Кто-нибудь знает, что происходит? Я включил код, который я использую для курсора.
DECLARE @DbName varchar(100)
DECLARE
GetDbName CURSOR
LOCAL
FORWARD_ONLY
OPTIMISTIC
FOR
SELECT
name
FROM
sys.databases
ORDER BY
name
OPEN GetDbName
FETCH NEXT FROM GetDbName
INTO @DbName
WHILE (@@fetch_status = 0)
BEGIN
print @DbName
INSERT INTO
TempLog
EXEC('DBCC CHECKDB ('+ @DbName +') WITH NO_INFOMSGS, TABLERESULTS')
FETCH NEXT FROM GetDbName
INTO @DbName
END
CLOSE GetDbName
DEALLOCATE GetDbName