Bri*_*haw 7 sql-server-2008 sql-server-2008-r2
sql server 如何判断一个函数是否是确定性的?
考虑下面的函数,我认为它是确定性的(因为它最终是一个整数运算),但是当我调用它的 objectproperty 方法时,sql server 返回 0。
了解它是如何工作的将帮助我理解为什么我对这个功能的评估是错误的。
CREATE FUNCTION dbo.EndOfPreviousMonth ( @Date date )
RETURNS date
AS BEGIN
RETURN DATEADD(day, 0 - DAY(@Date), @Date);
END;
SELECT dbo.EndOfPreviousMonth('2010-01-01'); --Usage example
--Returns 0, I expected it to return 1
SELECT OBJECTPROPERTY( OBJECT_ID( 'dbo.EndOfPreviousMonth' ), 'IsDeterministic' );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2821 次 |
| 最近记录: |