2009-06-30 3 views
2

Est-il possible de créer une fonction SQL Server qui renvoie une chaîne Nullable?Retourne le type nullable dans la fonction SQL Server

Je voudrais créer une fonction qui retourne DBNull si la valeur est 0 ou une chaîne vide:

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 

Répondre

5

Tout type de données dans SQL peut être définie sur null à moins est mis une restriction non nulle sur elle . Par conséquent, vous devriez pouvoir utiliser le type de retour qui convient le mieux à vos besoins ...

Dans votre code d'appel, vous devez vérifier si la valeur renvoyée est égale à DBNull.Value et que votre code agit en conséquence .

+0

Merci, je pense trop de C#, où vous devez spécifier les types nullable. – Dofs

+0

Existe-t-il un moyen de dire 'RETURNS NOT NULL'? – Panzercrisis

1

Cela ne retourne NULL pour moi:

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) 
Questions connexes