自动递增语法错误

Auto increment syntax errors

这是我的简单数据库的代码:

CREATE TABLE [dbo].[User_Info] (
[Username]  NVARCHAR (50) NOT NULL,
[Password]  NVARCHAR (50) NOT NULL,
[Firstname] NVARCHAR (50) NOT NULL,
[Lastname]  NVARCHAR (50) NOT NULL,
[Email]     NVARCHAR (50) NOT NULL,
[Country]   NVARCHAR (50) NOT NULL,
[Phone]     NVARCHAR (50) NOT NULL,
[Gender]    NVARCHAR (50) NOT NULL,
[Admin]     INT           NULL,
PRIMARY KEY CLUSTERED ([Username] ASC)
);
SELECT GO * from User_Info;

Alter table User_Info
add column id int NOT NULL auto_increment Unique Key;

CREATE 的错误是:

Only 1 statement is allowed per batch, such as 'GO', might be required between statements

column 的错误是:

Incorrect syntax near 'column'

我需要一个自动 ID 系统,这样我的网站才能取得进展,我该如何解决这个问题?

下面的代码对我有用:

CREATE TABLE user_Info (
   [admin] int IDENTITY(1,1) PRIMARY KEY,
   [Username]  NVARCHAR (50) NOT NULL,
   [Password]  NVARCHAR (50) NOT NULL,
   [Firstname] NVARCHAR (50) NOT NULL,
   [Lastname]  NVARCHAR (50) NOT NULL,
   [Email]     NVARCHAR (50) NOT NULL,
   [Country]   NVARCHAR (50) NOT NULL,
   [Phone]     NVARCHAR (50) NOT NULL,
   [Gender]    NVARCHAR (50) NOT NULL,
);

T-SQL的代码是:

CREATE TABLE dbo.UserInfo (
    UserName nvarchar(50) not null,
    PRIMARY KEY CLUSTERED (UserName ASC)
);
SELECT * FROM UserInfo;
GO
ALTER TABLE dbo.UserInfo ADD id int not null  IDENTITY(1,1);

但是,如果您希望用户名是唯一的,最好将 id 作为您的主键并为用户名添加约束条件。

您需要添加一个批次分隔符,并删除 column 关键字,并将 auto_increment Unique Key 替换为 identity(1,1) unique

CREATE TABLE [dbo].[User_Info] (
[Username]  NVARCHAR (50) NOT NULL,
[Password]  NVARCHAR (50) NOT NULL,
[Firstname] NVARCHAR (50) NOT NULL,
[Lastname]  NVARCHAR (50) NOT NULL,
[Email]     NVARCHAR (50) NOT NULL,
[Country]   NVARCHAR (50) NOT NULL,
[Phone]     NVARCHAR (50) NOT NULL,
[Gender]    NVARCHAR (50) NOT NULL,
[Admin]     INT           NULL,
PRIMARY KEY CLUSTERED ([Username] ASC)
);
GO
SELECT * from User_Info;
GO
Alter table User_Info
add id int identity(1,1) not null unique;
GO

添加列时,在 UNIQUE 约束规范中指定 IDENTITY 以确保独立于主键的唯一值。下面的示例还指定了一个约束名称,这是一种最佳做法,而不是自动生成的约束名称。

CREATE TABLE [dbo].[User_Info] (
    [Username]  NVARCHAR (50) NOT NULL,
    [Password]  NVARCHAR (50) NOT NULL,
    [Firstname] NVARCHAR (50) NOT NULL,
    [Lastname]  NVARCHAR (50) NOT NULL,
    [Email]     NVARCHAR (50) NOT NULL,
    [Country]   NVARCHAR (50) NOT NULL,
    [Phone]     NVARCHAR (50) NOT NULL,
    [Gender]    NVARCHAR (50) NOT NULL,
    [Admin]     INT           NULL,
PRIMARY KEY CLUSTERED ([Username] ASC)
);

ALTER TABLE dbo.User_Info
    ADD id int NOT NULL IDENTITY CONSTRAINT UQ_User_Info_id UNIQUE;
GO