Подтвердить что ты не робот

SQL Server Management Studio - как изменить тип поля, не отбрасывая таблицу

В SQL Server Management Studio при изменении существующего поля в представлении дизайна от DECIMAL (16,14) до DECIMAL (18,14) он не позволит мне сохранять, не отбрасывая всю таблицу и все ее данные.

Можно ли изменить тип поля, как только база данных будет заполнена записями?

4b9b3361

Ответ 1

Просто используйте T-SQL script вместо визуального дизайнера для достижения своей цели:

ALTER TABLE dbo.YourTableNameHere
ALTER COLUMN YourColumnNameHere DECIMAL(18, 14) 

и все должно быть хорошо.

Визуальный дизайнер берет дополнительный тщательный маршрут создания таблицы с новой структурой, а затем копирует все данные - он работает, но это утомительно. Обычно, если вы не усекаете столбец (сократите его), вы можете определенно изменить тип данных столбца "на месте" с помощью инструкции T-SQL.

Кроме того: по умолчанию конструктор SSMS является дополнительным осторожным и не допускает изменений, требующих цикла таблицы "drop-and-rereate". Вы можете отключить эту дополнительную тщательность в Tools > Options, а затем в этом диалоговом окне:

enter image description here

Если вы снимете эту опцию, вы сможете сделать "разрушительные" изменения в своем визуальном дизайнере

Ответ 2

Дизайнер по-прежнему будет удалять таблицу, даже если опция не установлена ​​в SSMS. Он просто не подскажет вам в следующий раз, когда он это сделает. Чтобы доказать, запустите профайлер SQL и измените столбец с помощью конструктора SSMS, и вы увидите команду drop table, выданную до выполнения команды таблицы Alter.

Ответ 3

tools → options → Инструменты DataBase → дизайнер таблиц и баз данных → параметры таблицы и диаграммы после этого сделать то же самое с вышеуказанным решением