我使用的是SQL Server 2008和我有一個觀點,看起來像這樣:把視圖上全文搜索索引與函數
select ID, dbo.functionname(ID) from tablename
我試圖把全文這個索引,但它似乎沒有一個我可以去掉的唯一索引。 tablename.ID是唯一標識符。
我試着在它上面創建一個索引,但是它表示它不能架構綁定視圖,因爲這個函數沒有被綁定。
我需要做些什麼來創建全文索引?
我使用的是SQL Server 2008和我有一個觀點,看起來像這樣:把視圖上全文搜索索引與函數
select ID, dbo.functionname(ID) from tablename
我試圖把全文這個索引,但它似乎沒有一個我可以去掉的唯一索引。 tablename.ID是唯一標識符。
我試着在它上面創建一個索引,但是它表示它不能架構綁定視圖,因爲這個函數沒有被綁定。
我需要做些什麼來創建全文索引?
爲了能夠創建索引視圖,視圖必須是確定性的,也就是說,必須保證每個查詢都是相同的。您的用戶功能deterministic?
用戶定義函數確定性
無論用戶定義的函數是 確定性或非確定性 取決於函數是如何編碼的。 用戶定義的函數是 確定性,如果:
* The function is schema-bound. * All built-in or user-defined functions called by the user-defined
功能是確定性的。
* The body of the function references no database objects outside
函數的作用域。例如,對於 示例,確定性函數 無法引用除 函數本地的 表以外的表。不 滿足這些標準
* The function does not call any extended stored procedures.
用戶定義的函數被標記爲 不確定的。內置的 非確定性函數不是 允許在用戶自定義的 函數中。
是你的函數SchemaBound?
alter function [dbo].[UserFunction]
(@example int = 1)
returns int
with schemabinding
as
begin
return 1
end
您的看法是SchemaBound?
ALTER VIEW dbo.UserView
WITH SCHEMABINDING
AS
SELECT ID, [dbo].userFunction
要創建一個索引視圖,您必須首先創建一個unique clustered index(See FAQ a bottom)。
我想你mean't「而不是」架構綁定在上面 意見重新創建視圖「WITH SCHEMABINDING」 然後創建一個獨特的clusterred指數 這裏http://www.mssqltips.com/tip.asp?tip=1610 然後嘗試將您的全文索引解釋
您是否試圖將其設置爲索引視圖? (所以結果存儲在數據庫的文件系統)? – 2009-04-21 07:52:22