在 SQL Server 2005 中,我尝试在将用于全文索引的索引视图中使用用户定义函数。我已经能够让 UDF 与存储过程和有问题的视图一起使用。但是,当我尝试在视图上创建索引时,出现以下错误...
无法在视图“DevDatabase.dbo.View_PersonSearch”上创建索引,因为视图引用的函数“dbo.GetCurrentImage”执行用户或系统数据访问。
我被这件事难住了。下面是我正在尝试做的一个例子。我错过了什么,或者这甚至可能吗?
用户定义函数
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