我正在尝试使用在 SQL Server 上通过持久性创建的哈希值来索引和引用两个表。我的计算是:
(hashbytes('sha1',((([AddressLine1]+[AddressLine2])+[City])+[State])+[Zip]))
这些列都是 Varchar 类型。
我在计算列上创建了一个索引,然后尝试通过 ODBC 链接到 SQLServer,但我收到此错误:
Invalid field Definition 'FIELDNAME' in definition of index or relationship
这可能是什么原因,我该如何解决?
编辑
我不允许分享有关表定义的信息,但我需要并且拥有的唯一键是主键,它是代理键。计算的字段强制使用 varbinary(max) 类型并允许空值。
测试指标如下
USE [KMC_MailingData]
GO
SET ARITHABORT ON
GO
SET CONCAT_NULL_YIELDS_NULL ON
GO
set QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
SET ANSI_PADDING ON
GO
SET ANSI_WARNINGS ON
GO
SET NUMERIC_ROUNDABORT OFF
GO
/****** Object: Index [test] Script Date: 08/08/2013 11:09:48 ******/
CREATE NONCLUSTERED INDEX [test] ON [dbo].[AddressStaging]
(
[calculatedHash] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF,
ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO