137 votes

Syntaxe pour modifier le tableau et ajouter une colonne

J'essaie d'ajouter par programme une colonne d'identité à une table Employés. Je ne suis pas sûr de ce que je fais de mal dans 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 de mal ? J'ai essayé d'exporter le script, mais SQL Mgmt Studio fait tout un truc pour renommer la table temporaire.

UPDATE : Je pense qu'il s'étouffe sur la première déclaration avec "syntaxe incorrecte près du mot clé 'COLUMN'".

192voto

Vikram Points 3319

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]

0voto

neouser99 Points 1203

Il pourrait être en train de renommer la table temporaire si vous essayez d'ajouter une colonne au début de la table (car cela est plus facile que de modifier l'ordre). De plus, s'il y a des données dans la table Employés, il doit faire une insertion select * pour pouvoir calculer l'EmployeeID.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X