[英]Error when ALTER TABLE - Msg 102, Level 15, State 1
我正在使用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,
)
並得到這個錯誤:
Msg 102,第15級,狀態1,第10行
'('附近的語法不正確。
我每次都在更改語法,但仍然會收到此錯誤
消息102,第15級,狀態1
問題是什么 ?
您只需要添加一個UNIQUE
約束即可
ALTER TABLE [Users]
ADD CONSTRAINT U_UserName UNIQUE(UserName),
CONSTRAINT U_UserEmail UNIQUE(UserEmail);
您的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 的ALTER TABLE
命令的全部信息
無法在列級別添加唯一鍵約束。 唯一鍵約束在表級別定義。
您可以通過以下方式更改表以添加唯一鍵。
ALTER TABLE table_name
ADD CONSTRAINT constraint_name UNIQUE (column1, column2, ... column_n);
例如
ALTER TABLE Users
ADD CONSTRAINT Users_Unique UNIQUE (UserName, UserEmail);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.