Sql добавляет новый столбец и разрешает значение null в столбец со значением по умолчанию

#sql #sql-server

Вопрос:

Может кто-нибудь сказать мне, что не так с приведенным ниже запросом с использованием SQL Server 2014. Много искал, но не нашел ни одного решения. На самом деле я добавляю новый столбец и даю этому столбцу значение null также со значением по умолчанию.

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

 alter table TBL_EMPLOYEE_MASTER add vCityName varchar(50) null Default('') FOR [vCityName]
GO
 

Комментарии:

1. Отметьте свой вопрос в базе данных, которую вы используете.

2. вы проверили в документации правильный синтаксис ?

3. Просто уберите FOR [vCityName] … Думаю, это считается опечаткой…

4. Просто НЕ определяйте пустую строку по умолчанию в первую очередь. Это не имеет никакого логического смысла. На самом деле, я предлагаю вам определить ограничение, которое ПРЕДОТВРАТИТ пустую строку (или эквивалент). Либо оно равно НУЛЮ, либо содержит «что — то», но не «ничего».

5. Кроме того, я настоятельно рекомендую одно явное ограничение имен для облегчения последующего DDL: ALTER TABLE TBL_EMPLOYEE_MASTER ADD vCityName varchar(50) NULL CONSTRAINT DF_TBL_EMPLOYEE_MASTER_vCityName DEFAULT('');

Ответ №1:

В for этом нет необходимости. Попробуйте выполнить запрос ниже.

 ALTER TABLE [dbo].[TBL_EMPLOYEE_MASTER] ADD [vCityName] VARCHAR(50) CONSTRAINT DF_TBL_EMPLOYEE_MASTER_vCityName DEFAULT '' NULL
GO
 

Этот запрос включает добавление имени к ограничению по умолчанию. Полезно ли разрешать НУЛИ И устанавливать пустую строку по умолчанию, зависит от вас 😉

Небольшое дополнение, я предпочитаю не начинать имена полей с «v» (vCityName), потому что это также общее соглашение об именах для представлений.