自动递增语法错误
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
这是我的简单数据库的代码:
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