我正在使用SQL Server并尝试更改现有表:
ALTER TABLE [Users]
(
[User_ID] INT IDENTITY(1,1) PRIMARY KEY,
[UserName] [NVARCHAR](30) NOT NULL UNIQUE, -- the only change is "UNIQUE"
[UserEmail] [NVARCHAR](30) NOT NULL UNIQUE, -- the only change is "UNIQUE"
[Password] [NVARCHAR](30) NOT NULL,
)
并得到此错误:
第15级州立1行10的消息102
'('附近的语法不正确。
我每次都在更改语法,但仍然会收到此错误
第15层状态1的消息102
出什么问题了?
答案 0 :(得分:4)
您只需要添加UNIQUE
约束作为
ALTER TABLE [Users]
ADD CONSTRAINT U_UserName UNIQUE(UserName),
CONSTRAINT U_UserEmail UNIQUE(UserEmail);
答案 1 :(得分:1)
您对ALTER TABLE
的语法是完全错误的-如果您只想将UNIQUE
添加到有问题的两列中,请使用以下代码:
ALTER TABLE [Users]
ADD CONSTRAINT UQ_Users_UserName UNIQUE (UserName);
ALTER TABLE [Users]
ADD CONSTRAINT UQ_Users_UserEmail UNIQUE (UserEmail);
在Docs @ Microsoft上阅读有关the ALTER TABLE
command的所有信息
答案 2 :(得分:1)
答案 3 :(得分:0)
无法在列级别添加唯一键约束。唯一键约束是在表级别定义的。
您可以通过以下方式更改表以添加唯一键。
ALTER TABLE table_name
ADD CONSTRAINT constraint_name UNIQUE (column1, column2, ... column_n);
例如
ALTER TABLE Users
ADD CONSTRAINT Users_Unique UNIQUE (UserName, UserEmail);