Как установить значение по умолчанию для существующего столбца

Это не работает в SQL Server 2008:

ALTER TABLE Employee ALTER COLUMN CityBorn SET DEFAULT 'SANDNES'

Ошибка:

Неправильный синтаксис рядом с ключевым словом "SET".

Что я делаю неправильно?

230
22 июля '11 в 17:42
источник поделиться
9 ответов

Это будет работать в SQL Server:

ALTER TABLE Employee ADD CONSTRAINT DF_SomeName DEFAULT N'SANDNES' FOR CityBorn;
366
22 июля '11 в 17:48
источник

Связанные вопросы


Похожие вопросы

ALTER TABLE Employee ADD DEFAULT 'SANDNES' FOR CityBorn
123
22 июля '11 в 17:46
источник

не может использовать столбец alter для этого, вместо этого используйте add

ALTER TABLE Employee 
ADD DEFAULT('SANDNES') FOR CityBorn
32
22 июля '11 в 17:44
источник

Правильный способ сделать это:

  • Запустите команду:

    sp_help [table name] 
    
  • Скопируйте имя CONSTRAINT.

  • Отбросьте DEFAULT CONSTRAINT:

    ALTER TABLE [table name] DROP [NAME OF CONSTRAINT] 
    
  • Выполните следующую команду:

    ALTER TABLE [table name] ADD DEFAULT [DEFAULT VALUE] FOR [NAME OF COLUMN]
    
21
14 февр. '14 в 16:25
источник

Решение Hoodaticus было отличным, спасибо, но я также нуждался в его повторном запуске и нашел этот способ, чтобы проверить, было ли это сделано...

IF EXISTS(SELECT * FROM information_schema.columns 
           WHERE table_name='myTable' AND column_name='myColumn' 
             AND Table_schema='myDBO' AND column_default IS NULL) 
BEGIN 
  ALTER TABLE [myDBO].[myTable] ADD DEFAULT 0 FOR [myColumn] --Hoodaticus
END
7
03 февр. '16 в 13:08
источник
ALTER TABLE [dbo].[Employee] ADD  DEFAULT ('N') FOR [CityBorn]
3
27 янв. '14 в 16:52
источник

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

  • Во время создания таблицы
  • Изменить существующий столбец для существующей таблицы.

  • Во время создания таблицы/создания нового столбца.

Запрос

create table table_name
(
    column_name datatype default 'any default value'
);
  1. Изменить существующий столбец для существующей таблицы

В этом случае мой SQL-сервер не позволяет изменять существующее значение ограничения по умолчанию. Таким образом, чтобы изменить значение по умолчанию, нам нужно удалить существующее сгенерированное системой или пользовательское ограничение по умолчанию. И после этого значение по умолчанию может быть установлено для определенного столбца.

Выполните следующие шаги:

  • Список всех существующих ограничений по умолчанию для столбцов.

Выполните эту процедуру с использованием системной базы данных, она принимает имя таблицы в качестве параметра. Он возвращает список всех ограничений для всех столбцов в таблице.

execute [dbo].[sp_helpconstraint] 'table_name'
  1. Отменить существующее ограничение по умолчанию для столбца.

Синтаксис:

alter table 'table_name' drop constraint 'constraint_name'
  1. Добавьте новое ограничение по умолчанию для этого столбца:

Синтаксис:

alter table 'table_name' add default 'default_value' for 'column_name'

cheers @!!!

3
24 февр. '15 в 8:25
источник

Попробуйте выполнить следующую команду:

ALTER TABLE Person11
ADD CONSTRAINT col_1_def
DEFAULT 'This is not NULL' FOR Address
2
28 янв. '14 в 13:46
источник

Как ответ Yuck с проверкой, чтобы позволить script запускать более одного раза без ошибок. (меньше кода/пользовательских строк, чем использование информационных_схем.колонны)

IF object_id('DF_SomeName', 'D') IS NULL BEGIN
    Print 'Creating Constraint DF_SomeName'
   ALTER TABLE Employee ADD CONSTRAINT DF_SomeName DEFAULT N'SANDNES' FOR CityBorn;
END
1
02 июня '17 в 8:01
источник

Посмотрите другие вопросы по меткам или Задайте вопрос