在.sql脚本中创建唯一列(asp.net core)

时间:2017-03-16 08:07:44

标签: sql sql-server

CREATE TABLE [User](
   UserId int identity(1,1),
   Email varchar(max) unique not null,
   UserName varchar(30) unique not null,
   [Password] varchar(max)not null,
   PRIMARY KEY(UserId)
);

当我运行此脚本时,我收到一条错误消息,指出Email和UserName是唯一约束的无效类型。所以我的问题是如何在表脚本中创建一个唯一的列?

1 个答案:

答案 0 :(得分:2)

您不能将varchar(max)或nvarchar(max)设置为唯一值。请考虑将这些列的长度设置为较低的值。

我认为你可以用于nvarchars唯一的最大长度为450

密码和电子邮件无论如何都不应该很长,也许100长度应该足够了。

无论如何,如果你想让它成为一个独特的列,就不要使用max。

就个人而言,我认为您不必强制执行密码是唯一的。如果密码未被接受,用户可能知道其他帐户是否正在使用该密码。

相关问题