[SQL]函數FUNCTION的參數param給預設值Default value, 且設定任一傳入參數為null時,不執行

  • 3360
  • 0

摘要:[SQL]函數FUNCTION的參數param給預設值Default value, 且設定任一傳入參數為null時,不執行

下面是一個簡單的計算圓形的面積的function 


SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO

alter FUNCTION [dbo].[udf_CalCircleArea]
 (@Radius float = 0)
RETURNS money 
--如果希望任何一個傳進來的參數是null的時候,就不執行內容的話
--就把下面的with拿掉註解
--with returns null  on null INPUT
AS  
BEGIN
	RETURN pi() * POWER(@Radius,2);
END


不過呢~不管有沒有設定with returns null  on null INPUT

實際上的執行結果看起來都一樣喔,純粹是效能上的考量而已

補充一下如果不傳入參數,要使用function預設值的話就用關鍵字default就好了,注意!這是function才要用default喔

Storeprocedure的話,直接放空就好


--這是function的情況
select dbo.udf_CalCircleArea(default);
--如果是Storeprocedure的話
select dbo.udf_CalCircleArea;

以上參考電子書 T-SQL 2012 PROGRAMMER'S GUIDE,做個紀錄避免忘記小技巧