2009-06-30 64 views
2

是否可以創建一個返回可爲空字符串的SQL Server函數?在SQL Server函數中返回可爲空的類型

我想創造出返回DBNull如果值爲0或空字符串的函數:

Create FUNCTION [dbo].[SetDBNullNvarChar] (@input nvarchar(1000)) 
RETURNS (needs to be nullable) 
AS 
BEGIN 
    if (@input = '' OR @input = 0) 
    BEGIN 
    RETURN null 
    END 
return @input 
END 

回答

5

在SQL中的任何數據類型,除非NOT NULL限制穿上它被設置爲空。因此,您應該可以使用任何最適合您需求的返回類型...

在您的調用代碼中,您必須檢查返回值是否等於DBNull.Value,並讓您的代碼相應地執行。

+0

謝謝,我想太多的C#,在那裏你必須指定可空類型。 – Dofs 2009-06-30 18:11:45

1

這不適合我返回NULL

Create FUNCTION [dbo].[SetDBNullNvarChar] (@input nvarchar(1000)) 
RETURNS NVARCHAR 
AS 
BEGIN 
    if (@input = '' OR @input = 0) 
    BEGIN 
    RETURN null 
    END 
return @input 
END 

SELECT [dbo].[SetDBNullNvarChar](0)