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


16

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

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

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

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

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

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

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

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

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

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

Ответы:


27

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

Смотри здесь .

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

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

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


6

// ДЕЛАЕМ СЛЕДУЮЩЕЕ

Откройте SQL Server Management Studio -> Меню инструментов -> Параметры -> Вкладка Конструкторы -> Дизайнер таблиц и баз данных -> Увеличьте время ожидания с 30 секунд до 65535 секунд .--> OK

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


1
Вау, это колоссальная настройка времени ожидания 18+. Время вздремнуть!
Питер Шютце

0

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

ALTER TABLE TableName ADD NewColumn INT

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


3
Я понимаю вашу точку зрения. Но я предпочитаю, чтобы мои столбцы были в определенном порядке. Глупо, вы можете подумать, но у вас это есть. Используя ALTER TABLE, новый столбец добавляется в конец. Я думаю, именно поэтому SSMS должна удалить и воссоздать таблицу, на самом деле.
Тор Хауген
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.