繁体   English   中英

SQL Server存储过程返回类型错误

[英]SQL Server stored procedure return type wrong

我有一个在SQL中可以正常工作的存储过程。 输出类型是字符串。

ALTER PROCEDURE [gis].[usp_GetNextUp_suffix] 
    @TableName varchar(50), 
    @id_w_suffix varchar(20) OUTPUT
AS
    DECLARE @id int, @suffix varchar(6)

    SELECT @id = Next_FacilityID 
    FROM dbo.Next_up 
    WHERE table_name = @TableName

    SELECT @suffix = Suffix 
    FROM dbo.Next_up 
    WHERE table_name = @TableName

    SET @id_w_suffix = @suffix + CONVERT(varchar, @id) + 'A'

    UPDATE dbo.Next_up 
    SET Next_FacilityID = @id + 1 
    WHERE table_name = @TableName
GO

但是,即使SQL Server Management Studio返回了有效的字符串,它也会以整数形式列出其返回类型。

在此处输入图片说明

当我将存储过程拉入.net LINQ对象时,它出错,因为它也期望使用整数而不是字符串。

如何更改存储过程以指定正确的返回类型?

SQL Server存储过程返回int 总是。 这是一个状态值。 如果要返回其他值,请使用存储的函数。

当您尝试运行该过程时,您只会得到某种类型的错误。

在这种情况下,您无法创建函数,因为您具有UPDATE语句。 因此,您必须使用参数返回输出值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM