Возврат Nvarchar из функции Когда значение Return равно 0, тогда другое числовое значение - PullRequest
0 голосов
/ 24 мая 2018

У меня есть функция, которая возвращает значение из таблицы при использовании идентификатора

При выполнении этого со значением в базе данных, равным '00', возвращается значение как 0

ЭтоЯвляется ли функция

ALTER FUNCTION [dbo].[GetSystemParameter]
(
    @Parameter nvarchar(50)
)

RETURNS nvarchar AS
BEGIN

    DECLARE @return nvarchar(50)


        SELECT @return = [ParameterValue] FROM dbo.[SystemParameters] WHERE [ParameterName] = @Parameter

RETURN @return

END

при выборе значения Select dbo.GetSystemParameter(<ParameterName>)

Возвращает 0 вместо '00', как я могу получить значение для возврата 00, а не 0

Заранее благодарю Джеймса

1 Ответ

0 голосов
/ 24 мая 2018

Типы символов без длины используют длины по умолчанию.Вы объявили свою хранимую процедуру для возврата nvarchar(1).Вы должны всегда использовать длины с этими типами в SQL Server:

ALTER FUNCTION [dbo].[GetSystemParameter] (
    @Parameter nvarchar(50)
)
RETURNS nvarchar(50) AS
BEGIN
    DECLARE @return nvarchar(50);

    SELECT @return = [ParameterValue]
    FROM dbo.[SystemParameters]
    WHERE [ParameterName] = @Parameter;

    RETURN @return;
END;
...