小编ana*_*sso的帖子

在多个 nvarchar(max) 列上建立索引

我的数据库中有多个 nvarchar(max) 列,名为ShipperName, ConsigneeName, ProdDesc, BillOFLading

我需要做的是将UNIQUE INDEX这些列组合起来。因为我没有这样做,因为如果 900 B 限制。

然后我尝试了(阅读以下链接Indexing Wide Keys 后

ALTER TABLE dbo.ProductDetail 
   ADD ShipperNameHash AS HASHBYTES('SHA2_512', ShipperName) PERSISTED;

ALTER TABLE dbo.ProductDetail 
   ADD ConsigneeNameHash AS HASHBYTES('SHA2_512', ConsigneeName) PERSISTED;
Run Code Online (Sandbox Code Playgroud)

然后我在以下语句中遇到以下错误:

消息 8152,级别 16,状态 10,第 1 行
字符串或二进制数据将被截断。
该语句已终止。

ALTER TABLE dbo.ProductDetail 
   ADD ProductDescHash AS HASHBYTES('SHA2_512', Product_Description) PERSISTED;
Run Code Online (Sandbox Code Playgroud)

而且还创建了上面的语句列varbinary(8000)。这当然没有为我解决问题。

有什么方法可以建立UNIQUE INDEX在这些列的组合上吗?

index sql-server sql-server-2012

3
推荐指数
1
解决办法
3406
查看次数

标签 统计

index ×1

sql-server ×1

sql-server-2012 ×1