我想在SQL Server 2005中編寫一個非CLR用戶定義的函數。此函數接受一個輸入字符串並返回一個輸出字符串。如果輸入字符串無效,那麼我想向調用者指出一個錯誤。用戶定義函數中的錯誤處理
我的第一個想法是使用RAISERROR引發異常。但是,SQL Server在UDF內部不允許這樣做(儘管您可以在基於CLR的UDF中引發異常,請參閱圖)。
如果輸入值出錯,我最後的手段是從函數返回NULL(或其他錯誤指示符值)。不過,我不喜歡這個選項,因爲它:
- 不提供給調用者的任何有用的信息
- 不允許我以響應有效輸入返回NULL(因爲它的使用作爲錯誤代碼)。
是否有任何調用方便的方法來停止SQL Server中的錯誤函數?
我期待的很多,但我想我會問。謝謝。 – 2009-08-06 19:05:00
sprocs的問題是你不能用函數的方式調用它們。 – 2013-01-08 19:17:18
我同意@MikeK。我使用UDF而不是完整stored_procedure的全部原因是內聯使用。 在較新版本的SQL Server中是否更改了此問題的答案? (例如2016) – ColinMac 2017-09-18 21:29:07