Изменить таблицу Добавить столбец Синтаксис
Я пытаюсь программно добавить столбец идентификатора в таблицу Employees. Не уверен, что я делаю неправильно с моим синтаксисом.
ALTER TABLE Employees
ADD COLUMN EmployeeID int NOT NULL IDENTITY (1, 1)
ALTER TABLE Employees ADD CONSTRAINT
PK_Employees PRIMARY KEY CLUSTERED
(
EmployeeID
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
Что я делаю неправильно? Я попытался экспортировать script, но SQL Mgmt Studio полностью переименовывает таблицу Temp Table.
UPDATE:
Я думаю, что он задыхается от первого утверждения с "Некорректным синтаксисом рядом с ключевым словом" COLUMN ".
Ответы
Ответ 1
Просто удалите COLUMN
из ADD COLUMN
ALTER TABLE Employees
ADD EmployeeID numeric NOT NULL IDENTITY (1, 1)
ALTER TABLE Employees ADD CONSTRAINT
PK_Employees PRIMARY KEY CLUSTERED
(
EmployeeID
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
Ответ 2
Вот как добавить новый столбец в таблицу
ALTER TABLE [tableName]
ADD ColumnName Datatype
например
ALTER TABLE [Emp]
ADD Sr_No Int
И если вы хотите, чтобы он автоматически увеличивался
ALTER TABLE [Emp]
ADD Sr_No Int IDENTITY(1,1) NOT NULL
Ответ 3
Правильный синтаксис добавления столбца в таблицу:
ALTER TABLE table_name
ADD column_name column-definition;
В вашем случае это будет:
ALTER TABLE Employees
ADD EmployeeID int NOT NULL IDENTITY (1, 1)
Чтобы добавить несколько столбцов, используйте скобки:
ALTER TABLE table_name
ADD (column_1 column-definition,
column_2 column-definition,
...
column_n column_definition);
COLUMN
ключевое слово в SQL SERVER используется только для изменения:
ALTER TABLE table_name
ALTER COLUMN column_name column_type;
Ответ 4
Это может быть переименование таблицы temp, если вы пытаетесь добавить столбец в начало таблицы (так как это проще, чем изменение порядка). Кроме того, если в таблице Employees есть данные, он должен сделать insert select *, чтобы он мог вычислять EmployeeID.