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

Я использую проект базы данных SQL Server с Visual Studio 2012 и столкнулся со следующей проблемой при сравнении и создании сценария обновления:

В Visual Studio я добавляю столбец с ограничением по умолчанию, например:

[NewColumn] NVARCHAR(50) CONSTRAINT [DF_ExistingTable_NewColumn] NOT NULL DEFAULT N''

К сожалению, имя ограничения по умолчанию не отображается, когда:

  • Сравнение (Сравнение схем) моего проекта с реальной базой данных
  • Создание сценария обновления (из Сравнения схем)

Созданный скрипт обновления содержит следующий скрипт (без имени ограничения):

ALTER TABLE [dbo].[ExistingTable]
    ADD [NewColumn] NVARCHAR (50) DEFAULT N'' NOT NULL;

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


person marapet    schedule 31.10.2012    source источник


Ответы (1)


Я думаю, что порядок может быть отключен в вашем определении. Попробуйте переместить часть «NOT NULL» в конец строки, а не в середину определения ограничения.

[NewColumn] NVARCHAR(50) CONSTRAINT [DF_ExistingTable_NewColumn] DEFAULT N'' NOT NULL
person Peter Schott    schedule 01.05.2013
comment
Я только что сделал ту же ошибку. Спасибо, NOT NULL, очевидно, должен быть в конце. - person Max Kornev; 15.06.2018