Мне нужно изменить значение по умолчанию для столбца в существующей таблице.SQL Server - значение по умолчанию для столбца
Я предположил (и я действительно нашел несколько примеров в сети «подтверждающую» это), что я мог бы сделать ALTER TABLE таблицы ALTER COLUMN COLUMN SET DEFAULT «что-то», но я получаю ошибку синтаксиса и в соответствии с этим http://msdn.microsoft.com/en-us/library/ms190273.aspx УМОЛЧА не поддерживается.
Следующая идея состояла в том, чтобы удалить ограничение по умолчанию из базы данных, но я обнаружил, что при создании таблицы ограничение не было названо, а 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?
Благодаря
Ссылка скопированная ссылка на SQL Compact версии, я использую полный SQL. Ошибка, которую я получаю, это Синтаксическая ошибка в SET (или DEFAULT, если я опускаю ключевое слово SET) –
Я ударил это тоже один раз за раз (именно поэтому я всегда называю мои ограничения). Я сделал то, что вы делаете, вытащите системное имя, создайте динамический код, чтобы его удалить, затем заново создайте его со стандартным именем (я использую DF_TableName__ColumnName). –