Ошибка команды сжатия базы данных sql server - PullRequest
1 голос
/ 23 мая 2011

Я выполняю эти команды из консольного приложения

DBCC SHRINKFILE (@FILE_NAME_MDF, 0) WITH NO_INFOMSGS
DBCC SHRINKFILE (@FILE_NAME_LDF, 0) WITH NO_INFOMSGS

и получаю эту ошибку

Не удается сжать базу данных XXX Не удается создать строку размером 8126, которая являетсябольше, чем допустимый максимальный размер строки 8060. Оператор был прерван.System.Data.SqlClient.SqlException (0x80131904): невозможно создать строку размером 812 6, которая превышает максимально допустимый максимальный размер строки 8060.

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 23 мая 2011

Похоже, ваша проблема здесь в том, что строка в вашей базе данных находится рядом с краем максимально допустимого размера, и при запуске DBCC SHRINKFILE она добавляет дополнительные данные в эту строку и выводит их за пределы. Я бы посмотрел на ваши таблицы, чтобы увидеть, есть ли одна, которая превышает ограничения по размеру, и посмотреть, если вы не можете изменить ее для хранения некоторых данных вне строки. Например, если у вас очень большое поле nvarchar, вы можете изменить его на TEXT, что позволит вам хранить эти данные на отдельной странице.

...