2009-06-30 3 views
2

Возможно ли создать функцию SQL Server, которая возвращает нулевую строку?Возвращаемый тип nullable в функции 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 может быть установлен в нуль, если только не нулевое ограничение не ставится на него , Поэтому вы должны иметь возможность использовать любой тип возврата, который наилучшим образом соответствует вашим потребностям ...

В вашем кодовом коде вам нужно будет проверить, соответствует ли возвращаемое значение DBNull.Value и соответствует ли ваш код ,

+0

Спасибо, я имею в виду слишком много C#, где вы должны указать обнуляемых типов. – Dofs

+0

Есть ли способ сказать 'RETURNS NOT NULL'? – Panzercrisis

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)