Ищете правильный синтаксис SQL для добавления значений по умолчанию в существующую таблицу - PullRequest
0 голосов
/ 02 февраля 2012

РЕДАКТИРОВАТЬ: Есть ли способ проверить, если ограничение уже существует, чтобы определить, нужно ли его сначала удалить?

Я строю серию таблиц, и в двух столбцах я устанавливаю значение по умолчанию «True» при добавлении новых записей.

Кажется, что ограничение будет добавлено со строкой кода, указанной ниже, но это не создает значение по умолчанию 'True' в привязке.

ВЫПУСК:

Я пытаюсь изменить значение по умолчанию для существующего столбца в SQL Express 2008

ALTER TABLE [dbo].[tblLangtrTR] ADD  CONSTRAINT [DF_tblLangtrTR_displayRecord_1]  DEFAULT (N'True') FOR [displayRecord]

используя приведенный выше код, я получаю эту ошибку ....

Сообщение 2714, уровень 16, состояние 5, строка 2 В базе данных уже есть объект с именем 'DF_tblLangtrTR_displayRecord_1'. Сообщение 1750, уровень 16, состояние 0, строка 2 Не удалось создать ограничение. Смотрите предыдущие ошибки.

1 Ответ

3 голосов
/ 02 февраля 2012
IF EXISTS(SELECT *
          FROM   sys.default_constraints
          WHERE  name = 'DF_tblLangtrTR_displayRecord_1'
                 AND parent_object_id = object_id('dbo.tblLangtrTR'))
  ALTER TABLE dbo.tblLangtrTR DROP CONSTRAINT
  [DF_tblLangtrTR_displayRecord_1]

ALTER TABLE dbo.tblLangtrTR ADD CONSTRAINT [DF_tblLangtrTR_displayRecord_1]
DEFAULT (N'True') FOR [displayRecord]  
...