Sql server 当返回值为0时,从函数返回Nvarchar,然后返回其他数值

Sql server 当返回值为0时,从函数返回Nvarchar,然后返回其他数值,sql-server,tsql,stored-functions,Sql Server,Tsql,Stored Functions,我有一个函数,在使用ID时从表中返回一个值 当在数据库中的值等于“00”的情况下运行此函数时,它会将值返回为0 这就是函数 ALTER FUNCTION [dbo].[GetSystemParameter] ( @Parameter nvarchar(50) ) RETURNS nvarchar AS BEGIN DECLARE @return nvarchar(50) SELECT @return = [ParameterValue] FROM dbo.

我有一个函数,在使用ID时从表中返回一个值

当在数据库中的值等于“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
选择值时 选择dbo.GetSystemParameter

返回0而不是“00” 如何获取返回00而不是0的值

提前通知你
James

没有长度的字符类型使用默认长度。您已声明存储过程以返回nvarchar1。在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;

标记您的数据库管理系统。ParameterValue是什么数据类型?将RETURNS nvarchar更改为RETURNS nvarchar?ParameterValue参数是NvarChar50Thank you Richard,现在可以正常工作了