SQL Server で永続的に作成されたハッシュ値を持つ 2 つのテーブルにインデックスを付けて参照しようとしています。私の計算は次のとおりです。
(hashbytes('sha1',((([AddressLine1]+[AddressLine2])+[City])+[State])+[Zip]))
列はすべて Varchar 型です。
計算列にインデックスを作成し、ODBC を介して SQLServer にリンクしようとしましたが、次のエラーが表示されます。
Invalid field Definition 'FIELDNAME' in definition of index or relationship
これの原因は何ですか?どうすれば修正できますか?
編集
テーブル定義に関する情報を共有することは許可されていませんが、私が必要とし、持っている唯一のキーは、代理キーである主キーです。計算フィールドは varbinary(max) 型を強制し、null を許可します。
テスト指数は以下の通り
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