web-dev-qa-db-fra.com

Modification de la syntaxe de la table Add Column

J'essaie d'ajouter par programme une colonne d'identité à une table Employees. Pas sûr de ce que je fais mal avec ma syntaxe.

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]

Qu'est-ce que je fais mal? J'ai essayé d'exporter le script, mais SQL Mgmt Studio effectue un changement complet du nom de la table temporaire.

UPDATE: Je pense que cela étouffe la première instruction avec "Syntaxe incorrecte près du mot clé" COLUMN "."

133
BuddyJoe

Il suffit de retirer COLUMN de 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]
188
Vikram

Voici comment Ajouter une nouvelle colonne à la table

ALTER TABLE [tableName]
ADD ColumnName Datatype

E.g

ALTER TABLE [Emp]
ADD Sr_No Int

Et si vous voulez le faire auto incrémenté

ALTER TABLE [Emp]
ADD Sr_No Int IDENTITY(1,1) NOT NULL
8
Chirag Thakar

La syntaxe correcte pour ajouter une colonne dans la table est la suivante:

ALTER TABLE table_name
  ADD column_name column-definition;

Dans votre cas ce sera:

ALTER TABLE Employees
  ADD EmployeeID int NOT NULL IDENTITY (1, 1)

Pour ajouter plusieurs colonnes, utilisez des crochets:

ALTER TABLE table_name
  ADD (column_1 column-definition,
       column_2 column-definition,
       ...
       column_n column_definition);

Le mot clé COLUMN dans SQL SERVER est utilisé uniquement pour modifier:

ALTER TABLE table_name
  ALTER COLUMN column_name column_type;
5
Dzianis Yafimau

Vous pourriez renommer la table temporaire si vous essayez d’ajouter une colonne au début de la table (ce qui est plus facile que de modifier l’ordre). De plus, s'il y a des données dans la table Employees, il faut insérer insert * pour pouvoir calculer le EmployeeID.

0
neouser99