[SQL ] 請教sql server indexed view 建立index

看板Database作者 (valda)時間12年前 (2012/08/16 16:12), 編輯推噓1(103)
留言4則, 1人參與, 最新討論串1/1
在sql server上建立了一個indexed view,其中有參考一個clr function ,建立好了,在建置index的時候出現以下的錯誤,請問該如何解決 無法在檢視 'ODS_XX.dbo.XXX' 上建立 索引,因為檢視在 SELECT 清單的非索引鍵資料行之外參考了 CLR 處理常式 (函數或方法) 'RegexMatch'。 請重新建立或改變檢視,使其除了在 SELECT 清單的非索引鍵資料行以外不參考 CLR處理常式,然後再建立索引。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.20.105.44

08/21 19:55, , 1F
首先,CLR function 要有 IsDeterministic=true 宣告
08/21 19:55, 1F

08/21 19:55, , 2F
定義 table 時,加入一個計算型欄位,引用您的 CLR
08/21 19:55, 2F

08/21 19:56, , 3F
function,該計算型欄位記得要加上 PERSISTED 選項。
08/21 19:56, 3F

08/21 19:56, , 4F
也就是說,改在 Table(而非 View)參用 CLR function。
08/21 19:56, 4F
文章代碼(AID): #1GBAjTTx (Database)