添加唯一约束时出错:表中的列的类型对于用作索引中的键列无效[重复]

Posted

技术标签:

【中文标题】添加唯一约束时出错:表中的列的类型对于用作索引中的键列无效[重复]【英文标题】:Error adding unique constraint: Column in table is of a type that is invalid for use as a key column in an index [duplicate] 【发布时间】:2015-04-25 18:09:49 【问题描述】:

如果我已经在 Id 列上有一个主键,并且我有一个 Name 列,我想在该列上添加一个 Unique constraint,我该如何在 SQL Server 中执行此操作?

我尝试了以下方法:

ALTER TABLE dbo.Hotels ADD CONSTRAINT
        UNQ_NAME UNIQUE NONCLUSTERED
(
            Name
)

错误:

Msg 1919, Level 16, State 1, Line 1
Column 'Name' in table 'Hotels' is of a type that is invalid for use as a key column in an index.

Name 表示为:

Name nvarchar(MAX) Allow Nulls

【问题讨论】:

【参考方案1】:

这个的语法是:

ALTER TABLE <tablename> ADD CONSTRAINT
        <constraintname> UNIQUE NONCLUSTERED
(
            <columnname>
)

【讨论】:

以上是关于添加唯一约束时出错:表中的列的类型对于用作索引中的键列无效[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何检索 SQL 表中所有列的所有约束名称

如何为 Oracle 中的列组合赋予唯一约束?

ORALCE表的约束条件

我可以向 MySQL 中的列组合添加唯一约束吗? [复制]

具有唯一索引和主键的列给出唯一约束违规

oracle 唯一索引,唯一约束,主键之间的联系