#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), потому что это также общее соглашение об именах для представлений.