Я пытаюсь программно добавить столбец идентификаторов в таблицу «Сотрудники». Не уверен, что я делаю не так со своим синтаксисом.
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]
Что я делаю не так? Я попытался экспортировать сценарий, но SQL Mgmt Studio полностью переименовал временную таблицу.
ОБНОВЛЕНИЕ : я думаю, что он задыхается от первого оператора с «неправильным синтаксисом рядом с ключевым словом 'COLUMN'».
sql
sql-server
tsql
ddl
BuddyJoe
источник
источник
column
ключевое слово и заставляют его работать, как и любую другую БД.COLUMN
вADD
заявлении.Вот как Добавление нового столбца в таблицу
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
источник
Правильный синтаксис для добавления столбца в таблицу:
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;
источник
Это могло быть переименование временной таблицы, если вы пытаетесь добавить столбец в начало таблицы (так как это проще, чем изменять порядок). Кроме того, если в таблице «Сотрудники» есть данные, ей нужно вставить select *, чтобы можно было вычислить EmployeeID.
источник