Я задаюсь вопросом, там ли способ вынудить Studio управления MSSQL произвести сценарий как это:
ALTER TABLE Mytable
ADD MyCol bit NOT NULL
CONSTRAINT MyColDefault
DEFAULT 0 WITH VALUES
ALTER TABLE [dbo].Mytable
ALTER COLUMN MyCol2 int NULL
GO
когда я изменяю очень простое свойство столбца на таблице. Если я делаю это в разработчике и прошу произведенный сценарий, сценарий не делает таких простых задач, но вместо этого копирует все данные в tmp таблице, отбрасывает исходную таблицу, переименовывает tmp таблицу с исходным именем таблицы. И, конечно, отбрасывания и воссоздают каждое ограничение и отношения.
Есть ли какая-либо опция, которую я могу изменить для изменения этого поведения? Или, это может быть возможно, там некоторая опасность, которую я не вижу в использовании простого ALTER TABLE выше?
спасибо.
Вы не можете изменить поведение, просто созданный им сценарий по умолчанию не всегда наиболее эффективен. Он создает сценарии в формате, который знает , что он будет работать, хотя часто результаты будут медленными и ресурсоемкими. Я рекомендую вам привыкнуть к созданию скрипта для всех изменений самостоятельно, так как вы можете лучше его оптимизировать. Нет ничего плохого в том, что вы создали (при условии, что у вас нет существующих ограничений / зависимостей на MyCol2, которые будут аннулированы, если он станет int, допускающим значение NULL)
Да, можно!
В SQL Server Management Studio перейдите в режим разработки таблицы для рассматриваемой таблицы и внесите свои изменения. Однако: не не нажимайте кнопку «Сохранить», а вместо этого щелкните правой кнопкой мыши в представлении конструктора таблицы, в конце контекстного меню должен быть пункт «Создать сценарий изменения».
Щелкните этот пункт меню, и вы увидите всплывающее диалоговое окно, содержащее сценарий T-SQL, необходимый для внесения тех изменений, которые вы внесли в таблицу в дизайнере. Скопируйте или сохраните этот код T-SQL, выйдите из дизайнера и вуаля - у вас есть сценарий изменения!
ОБНОВЛЕНИЕ: Марко, извините, я не думаю, что есть возможность изменить поведение по умолчанию, по крайней мере, прямо сейчас. Возможно, вы захотите отправить запрос на расширение в Microsoft через Microsoft Connect, чтобы предложить это - я думаю, хорошая идея!