日期:2014-05-18  浏览次数:20466 次

Sqlserver 返回包含的0的字符串问题
SQL code

CREATE PROCEDURE testPro
    
AS
BEGIN
    DECLARE @c nvarchar(3)
    SET @c = '001'
    PRINT @c
    RETURN @c
END

DECLARE @n NVARCHAR(3)
EXEC @n = testPro
PRINT @n


返回值是1,实际上应该是‘001’,为什么?

------解决方案--------------------
SQL code
CREATE PROCEDURE testPro @c nvarchar(3) output  
AS
BEGIN
    SET @c = '001'
    PRINT @c
    RETURN @c
END

DECLARE @n NVARCHAR(3)
EXEC testPro @n output
PRINT @n

------解决方案--------------------
存储过程的返回值都是数值型
你的需求可以用output来做
或者取到到数值之后再做格式化