在sql 2000資料庫裡的自定義函數中調用getdate()時,結果編譯時報錯,提示錯誤如下:invalid use of 'getdate' within a function
我給個測試例子如下所示,
如果你把getdate() 改成dbo.getdate()則編譯不會出錯,但是調用該函數時會報錯,錯誤提示如下所示:對象名 'dbo.getdate '
無效。
這是因為不允許在使用者定義函數主體中内置不确定函數(确定性函數和不确定性函數大家可以參考msdn文檔介紹)。在sql 2000裡面有
兩種解決方案:把getdate()函數作為自定義函數的參數傳入(如下所示)或定義獲得目前時間的視圖來解決這個問題。getdate()是不确
定函數。不過似乎在sql 2005裡面,自定義函數可以調用函數getdate(),如下所示,而且編譯、調用時都不會出錯。