Назад | Перейти на главную страницу

Таблица сохранения тайм-аута в SQL Server

Я пытаюсь добавить столбец в таблицу с большим количеством данных в SQL Server 2005, используя SSMS.

Итак, я перехожу к таблице, выбираю «Изменить» и добавляю новый столбец. Затем, когда я нажимаю Сохранить, я получаю следующее предупреждение:

Сохранение изменений определений в таблицах с большими объемами данных может занять значительное время. Пока изменения сохраняются, данные таблицы будут недоступны

Я в порядке, БД отключена, и у меня есть все время, поэтому я нажимаю Да.

Однако через 30 секунд операция переходит в тайм-аут с таким сообщением:

Невозможно изменить таблицу. Истекло время ожидания. Время ожидания истекло до завершения операции или сервер не отвечает.

Затем, когда я нажимаю ОК:

Пользователь вышел из диалогового окна сохранения (MS Visual Database Tools)

Я этого не понимаю. Я установил тайм-аут выполнения на 0 (бесконечный) как в диалоговом окне подключения SSMS, так и в разделе Инструменты -> Параметры -> Выполнение запроса -> SQL Server. Какой смысл устанавливать тайм-аут выполнения, если он просто игнорируется?

Кто-нибудь знает, какое значение тайм-аута здесь используется и как я могу его установить?

Похоже на настройку тайм-аута. Таким образом, ваша SSMS считает, что это занимает слишком много времени, и отменяет соединение для вас. Роли SQL-сервера вернулись. Но есть помощь. Вы не первый, кто с этим сталкивается.

Видеть Вот.

Для всех, кто не хочет переходить по ссылке. Вот ответ на выигрыш по цене:

После того, как я столкнулся с той же ошибкой, я наткнулся на настройку corrent.

В Management Studio в меню «Инструменты» выберите «Параметры» и нажмите «Дизайнеры». Существует опция «Переопределить значение времени ожидания строки подключения для обновлений конструктора таблиц:» В поле «Время ожидания транзакции после:» вы увидите волшебные 30 секунд.

// ДЕЛАЙТЕ СЛЕДУЮЩЕЕ:

Откройте студию управления SQL Server -> Меню «Инструменты» -> Параметры -> Вкладка «Дизайнеры» -> Конструктор таблиц и баз данных -> Увеличьте время ожидания с 30 до 65 535 секунд -> ОК

// Теперь вы можете сохранить изменения в таблице. // Надеюсь, что это поможет, и проверьте мой блог @: //www.ogolla.blogspot.com

Этот ответ пришел ко мне в Google, даже когда я думал, что добавляю индекс, а не меняю столбец.

Есть лучший способ делать длительные изменения:

1) Внесите желаемые изменения в дизайн стола. Не нажимайте «Сохранить».

2) В SSMS щелкните Конструктор таблиц ... Затем сгенерируйте сценарий изменения ...

3) В окне вы увидите скрипт, который при выполнении внесет изменения, которые вы поставили в очередь в дизайнере.

4) Вы можете сохранить и запустить этот сценарий в SMSS или что вы можете сделать, если уверены, - это «скопировать» сценарий из этого окна в буфер обмена. Скажите «нет» сохранению файла. Затем закройте конструктор БЕЗ СОХРАНЕНИЯ (технически теряя изменения в БД) и откройте новое окно запроса. Вставьте сценарий изменения, затем выполните сценарий. Ваши изменения будут применены к БД, даже если на это уйдут годы.

SSMS не следует использовать для общей модификации данных. Освоитесь с T-SQL и добавьте столбец, как предложено ниже.

ALTER TABLE TableName ДОБАВИТЬ NewColumn INT

SSMS фактически создает новую таблицу со всеми столбцами, импортирует данные в новую таблицу и удаляет старую. Даже если у вас есть все время в мире, если есть эффективный способ сделать что-то, вы должны использовать правильный метод. Чтобы избежать этого беспорядка, в SQL Server 2008 не разрешен GUI-метод IIRC.