Изменить Таблицу Добавить Синтаксис Столбца



Я пытаюсь программно добавить столбец идентификаторов в таблицу 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]


что я делаю не так? Я попытался экспортировать скрипт, но SQL Mgmt Studio делает всю временную таблицу переименовать вещь.



обновление:
Я думаю, что он задыхается от первого утверждения с "неправильным синтаксисом рядом с ключевым словом "столбец"."

535   4  

4 ответов:

просто удалить 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]

вот как добавить новый столбец в таблицу

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;

Это может быть переименование временной таблицы, если вы пытаетесь добавить столбец в начало таблицы (так как это проще, чем изменить порядок). Кроме того, если есть данные в таблице Employees, он должен сделать insert select*, чтобы он мог вычислить EmployeeID.

Comments

    Ничего не найдено.