如何在SQL Server中强制执行varchar(45)列的前35个字符的唯一性

ado*_*lot 2 sql t-sql indexing sql-server-2005 unique

我有文章的表格,并且有大约150.000条记录,在该表格中我有列名称,它是varchar(45)的类型.现在我想在该表上创建索引,约束或触发器,这将使列名在相同列的35个字符的左侧保持唯一.

什么是正确的方法,我担心我会失去这个大表的性能如果我使用错误的方法.

And*_*mar 12

创建计算列:

alter table YourTable add left35 as substring(col1, 1, 35)
Run Code Online (Sandbox Code Playgroud)

然后,您可以在该列上创建唯一索引:

create unique index IX_YourTable_left35 on YourTable(left35)
Run Code Online (Sandbox Code Playgroud)

这将导致左边35个字符的唯一性col1.