我的数据库中有多个 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
在这些列的组合上吗?