当用户定义的标量函数看起来是非确定性时,创建持久计算列

时间:2009-09-16 15:06:54

标签: sql-server-2005

我有一个标量UDF,我知道它是确定性的,但SQL没有。有没有办法将它声明为确定性的,以便我可以在持久的计算列定义中使用它?

进一步澄清: 本练习的目的是我需要从行上的XML列中获取特定值。我不能在计算列定义中使用xml列的value方法,但我可以在UDF中使用它。我知道value方法中的xpath查询将产生相同的输出给出相同的输入,所以我当然明白并非所有对value的调用都是确定性的我想断言我的是。

2 个答案:

答案 0 :(得分:1)

事实证明,我需要做的是将WITH SCHEMABINDING添加到UDF定义中。毕竟value方法是确定性的。 (显然是因为XQuery不包含日期?)

答案 1 :(得分:0)

谢谢你的回答!但是,当函数返回从XML提取的日期时间时,它似乎不起作用。你有没有观察到这一点,或者有任何想法如何解决它?

由于

编辑: 显然这个困境的解决方案可以在这里找到...... Persisting a computed datetime column in SQL Server 2005