SQL Server - изменение значения столбца по умолчанию - PullRequest
1 голос
/ 06 января 2012

Мне нужно изменить значение по умолчанию для столбца в существующей таблице.

Я предположил (и я нашел несколько примеров в сети, «подтверждающих» это), что я мог бы сделать Таблица ALTER TABLE Столбец ALTER COLUMN SET DEFAULT 'что-то', но я получаю синтаксическую ошибку и в соответствии с этим http://msdn.microsoft.com/en-us/library/ms190273.aspx DEFAULT не поддерживается.

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

Я пришел с запросом из таблиц sys, который возвращает имя ограничения:

select o.name from sys.objects o 
join sys.columns c on o.object_id = c.default_object_id
join sys.tables t on c.object_id = t.object_id
where t.name='TableName' and c.name='ColumnWithDefValue'

Я собираюсь написать запрос путем конкатенации строк, и я не могу перестать думать о том, как должен быть лучший способ сделать все это. Есть предложения?

TL; версия DR: какой самый простой способ изменить ограничение по умолчанию для столбца в SQL Server R2?

Спасибо

1 Ответ

1 голос
/ 06 января 2012

Похоже, вы должны удалить ограничение и затем воссоздать его

http://bypsoft.blogspot.com/2007/10/changing-default-column-values-sql.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...