SQL Server 2005 で、フルテキスト インデックスで使用されるインデックス付きビューでユーザー定義関数を使用しようとしています。問題のストアド プロシージャとビューで UDF を動作させることができました。しかし、ビューにインデックスを作成しようとすると、次のエラーが発生します...
ビューによって参照される関数 "dbo.GetCurrentImage" がユーザーまたはシステム データ アクセスを実行するため、ビュー "DevDatabase.dbo.View_PersonSearch" にインデックスを作成できません。
私はこれに困惑しています。以下は、私がやろうとしていることの例です。何か不足していますか、それとも可能ですか?
ユーザー定義関数
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[GetCurrentImage](@Person_ID int)
RETURNS int
WITH SCHEMABINDING
AS
BEGIN
-- Declare the return variable here
DECLARE @Img_ID int
SET @Img_ID = (**sql that selects image** )
RETURN @Img_ID
END
GO
インデックス作成で見る
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER VIEW [dbo].[View_PersonSearch]
WITH SCHEMABINDING
AS
SELECT Person_ID,
(**Select fields to search on**) AS SearchArea,
dbo.GetCurrentImage(Person_ID) AS FK_Img_ID
FROM dbo.Person
GO
CREATE UNIQUE CLUSTERED INDEX Index_Person_ID ON [View_PersonSearch](Person_ID)
GO