我有一個標量UDF,但我知道它是確定性的,但是SQL沒有。有沒有辦法將其聲明爲確定性的,以便我可以在持久計算列定義中使用它?當用戶定義的標量函數看起來不確定時創建了持久計算列
進一步說明: 本練習的目的是我需要從行中的XML列收集特定值。我無法在計算列定義中使用xml列的value
方法,但我可以在UDF中使用它。我知道在value
方法中的xpath查詢將產生相同的輸出給予相同的輸入,所以我當然明白,並不是所有對value
的調用都是確定性的,我想斷言我是。
我有一個標量UDF,但我知道它是確定性的,但是SQL沒有。有沒有辦法將其聲明爲確定性的,以便我可以在持久計算列定義中使用它?當用戶定義的標量函數看起來不確定時創建了持久計算列
進一步說明: 本練習的目的是我需要從行中的XML列收集特定值。我無法在計算列定義中使用xml列的value
方法,但我可以在UDF中使用它。我知道在value
方法中的xpath查詢將產生相同的輸出給予相同的輸入,所以我當然明白,並不是所有對value
的調用都是確定性的,我想斷言我是。
事實證明我需要做的是將WITH SCHEMABINDING
添加到UDF定義中。畢竟,value
方法是確定性的。 (顯然是因爲XQuery不包含日期?)
謝謝你的回答!但是,當函數返回從XML中提取的日期時間時,它似乎不起作用。你觀察過這個,或者有什麼想法如何解決它?
感謝
編輯: 顯然是解決這個的dilemna可以在這裏找到... Persisting a computed datetime column in SQL Server 2005