Зміна розміру стовпця в SQL Server


Відповіді:


507
ALTER TABLE [Employee]
ALTER COLUMN [Salary] NUMERIC(22,5) NOT NULL

6
Будьте уважні, якщо ви змінюєте стовпець у дуже великій таблиці даних. Ви можете викликати збій (у будь-якому випадку в моєму оточенні).
DavidTheDev

55
Також важливо, що якщо стовпець з атрибутом, NOT NULLто його потрібно згадати у запиті, він встановить його NULLза замовчуванням. ALTER TABLE [Employee] ALTER COLUMN [Salary] NUMERIC(22,5) NOT NULL
Сувенду Шехар Гірі

8
Якщо у вас є індекс у цьому стовпці, вам доведеться його скинути, виконайте код таблиці alter, а потім знову створіть індекс
Sr.PEDRO



19

Запуск ALTER COLUMNбез згадування атрибута NOT NULLпризведе до того, що стовпець буде змінено на нульовий, якщо його вже немає. Тому спочатку потрібно перевірити, чи стовпчик є нульовим, а якщо ні - вказати атрибут NOT NULL. Крім того, ви можете використовувати наступне твердження, яке заздалегідь перевіряє нульовість стовпця та запускає команду з правильним атрибутом.

IF COLUMNPROPERTY(OBJECT_ID('Employee', 'U'), 'Salary', 'AllowsNull')=0
    ALTER TABLE [Employee]
        ALTER COLUMN [Salary] NUMERIC(22,5) NOT NULL
ELSE        
    ALTER TABLE [Employee]
        ALTER COLUMN [Salary] NUMERIC(22,5) NULL

6

Виберіть таблицю -> Дизайн -> змінити значення в Тип даних, показане на рис.

введіть тут опис зображення

Збережіть дизайн таблиць.


перевірити правильно, можливо, вам не вистачає певного кроку.
арнів

7
Інструменти -> Опції ... /> Дизайнери -> Конструктори таблиць і баз даних - зніміть прапорець "Запобігти збереженню змін, які потребують відновлення таблиці"
7anner

У більшості речей я віддаю перевагу сценаріям. Але за зміни стовпців мені подобається інтерфейс користувача. Не потрібно пам'ятати, щоб перевірити НЕ NULL чи будь-які обчислення чи будь-які додаткові властивості стовпців. Просто натисніть кнопку "Зберегти" (після зміни параметрів у SSMS як @ 7anner примітки).
Яків Н

1

Цікавий підхід можна знайти тут: Як збільшити свої стовпці без простою за допомогою spaghettidba

Якщо ви спробуєте збільшити цей стовпець за допомогою прямої команди «ALTER TABLE», вам доведеться почекати, коли SQLServer пройде через всі рядки та напише новий тип даних

ALTER TABLE tab_name ALTER COLUMN col_name new_larger_data_type;

Щоб подолати цю незручність, існує ваша чарівна таблетка для збільшення стовпців, яку може прийняти ваш стіл, і вона називається Стиснення рядків. (...) За допомогою стиснення рядків стовпці фіксованого розміру можуть використовувати лише простір, необхідний для найменшого типу даних, куди підходять фактичні дані.

Коли таблиця стискається на ROWрівні, тоді ALTER TABLE ALTER COLUMNце лише метадані.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.