Не может восстановить индекс потому что строка выше максимального размера (Microsoft SQL)

При ожидании моего VMs для вращения но похоже, что это должно работать (от чтения этого)

  • Открытая групповая политика к Computer Configuration\Policies\Windows Settings\Security Settings\System Services
  • Отредактируйте рассматриваемый сервис, включите, "определяют установку политики" и затем "безопасность редактирования"
  • Добавьте пользователя и дайте им, "чтение" и "запускается, останавливается, и пауза" права

Я буду качаться тем, после того, как я испытаю это, но хороший вопрос! Я понятия не имел, что это было добавлено.

Это могло бы также работать: Удаленно перезапуская сервис для пользователя неадминистратора

3
задан 26 April 2012 в 14:39
2 ответа

Похоже, что какая-то программа помещала пробелы в текстовые поля вместо того, чтобы оставлять их как пустые, что и должно было быть.

Решением было скопировать данные в новую таблицу (с использованием INSERT , а не SSIS), но с условием для каждого текстового поля в SELECT , например:

CASE datalength([col1]) WHEN 0 THEN NULL ELSE [col1] END AS [col1]

Это удалило пустые текстовые поля, что решило проблему - очевидно, данные должны быть скопированы снова, но я могу просто сделать TRUNCATE TABLE [tablename] , а затем INSERT INTO [tablename] SELECT * FROM [copyoftable]

Я думаю, что это может быть пора объяснить некоторым людям о существовании varchar (MAX).

1
ответ дан 3 December 2019 в 06:14

Помогает ли этот пост?

Предлагается создать новый столбец ТЕКСТ (на который не распространяется ограничение на длину строки), скопируйте в него столбец переменной длины отбрасывая старый столбец и выполняя DBCC CLEANTABLE . Сделайте это для всех столбцов переменной длины, затем верните их в прежнее состояние.

3
ответ дан 3 December 2019 в 06:14

Теги

Похожие вопросы