J'ai une table existante que je suis sur le point de supprimer, car je ne l'ai pas créée avec la colonne ID
définie comme étant la colonne Identity de la table.
En utilisant SQL Server Management Studio, j'ai écrit un script "Créer pour ..." de la table existante et j'ai obtenu ceci:
CREATE TABLE [dbo].[History](
[ID] [int] NOT NULL,
[RequestID] [int] NOT NULL,
[EmployeeID] [varchar](50) NOT NULL,
[DateStamp] [datetime] NOT NULL,
CONSTRAINT [PK_History] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Ma question est la suivante: comment modifier cette SQL
de sorte que la table résultante ait la colonne ID
définie comme Identity?
CREATE TABLE [dbo].[History](
[ID] [int] IDENTITY(1,1) NOT NULL,
[RequestID] [int] NOT NULL,
[EmployeeID] [varchar](50) NOT NULL,
[DateStamp] [datetime] NOT NULL,
CONSTRAINT [PK_History] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
) ON [PRIMARY]
Cela a déjà été répondu, mais je pense que la syntaxe la plus simple est:
CREATE TABLE History (
ID int primary key IDENTITY(1,1) NOT NULL,
. . .
L'index de contrainte plus complexe est utile lorsque vous souhaitez réellement modifier les options.
En passant, je préfère nommer une telle colonne HistoryId afin qu'elle corresponde aux noms des colonnes dans les relations de clé étrangère.
[id] [int] IDENTITY(1,1) NOT NULL,
bien sûr, puisque vous créez la table dans SQL Server Management Studio, vous pouvez utiliser le concepteur de table pour définir la spécification d'identité.