réinitialiser SqlServer crée une table avec MySql comme la clé primaire auto_increment




sql server identity (7)

Comme indiqué ci-dessus, utilisez un champ IDENTITY.

CREATE TABLE foo
(
user_id int IDENTITY(1,1) NOT NULL,
name varchar(50)
)

Je veux faire une table dans SqlServer qui ajoutera, sur l'insertion, une clé primaire auto incrémentée. Cela devrait être un identifiant auto-incrémenté similaire à la fonctionnalité auto_increment MySql. (Au dessous de)

create table foo  
(  
user_id int not null auto_increment,  
name varchar(50)  
)  

Y at-il un moyen de le faire sans créer un déclencheur d'insertion?


Comme d'autres l'ont dit, il suffit de définir l'option Identité.


Comme ça

create table foo  
(  
user_id int not null identity,  
name varchar(50)  
)

OP a demandé une clé primaire auto incrémentée. Le mot-clé IDENTITY ne fait pas en soi qu'une colonne soit la clé primaire.

CREATE TABLE user
(
  TheKey int IDENTITY(1,1) PRIMARY KEY,
  Name varchar(50)
)

Comme d'autres l'ont mentionné: ajoutez l'attribut IDENTITY à la colonne et en faites une clé primaire.

Il existe cependant des différences entre l'IDENTITY de MSSQL et l'AUTO_INCREMENT de MySQL:

  • MySQL requiert qu'une contrainte unique (souvent sous la forme d'une clé primaire) soit définie pour la colonne AUTO_INCREMENT.
    MSSQL n'a pas une telle exigence.
  • MySQL vous permet d'insérer manuellement des valeurs dans une colonne AUTO_INCREMENT.
    MSSQL vous empêche d'insérer manuellement une valeur dans une colonne IDENTITY; si nécessaire, vous pouvez remplacer cette commande en lançant une commande "SET IDENTITY_INSERT tablename ON" avant l'insertion.
  • MySQL vous permet de mettre à jour les valeurs dans une colonne AUTO_INCREMENT.
    MSSQL refuse de mettre à jour les valeurs dans une colonne IDENTITY.

Définissez simplement le champ en tant que champ d' identité .


déclarer le champ d'identité





auto-increment