自动递增语法错误

问题描述 投票:0回答:3

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

enter image description here

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的错误是:

每批之间可能只需要1条语句,例如'GO',则可能需要

[column的错误是:

'column'附近的语法不正确

我需要一个自动ID系统,这样我才能继续自己的网站,如何解决此问题?

sql sql-server ddl
3个回答
0
投票

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作为主键并在用户名上添加一个约束。


0
投票

下面的代码对我有用:

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,
);

0
投票

您需要添加一个批处理分隔符,并删除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
© www.soinside.com 2019 - 2024. All rights reserved.