存储过程在LINQ中返回varchar

Nic*_*ahn 0 sql-server linq-to-sql

我想知道在SQL中是否可以从存储过程返回varchar值,我看到的大多数示例返回值都是int

proc中的示例

declare @ErrorMessage varchar(255) if @TestFlag = 0 set @ErrorMessage = 'Test' 
return @ErrorMessage 
Run Code Online (Sandbox Code Playgroud)

在asp.net上调用更新:

错误: 将varchar值'Development'转换为数据类型int时转换失败.

   using (DataContextDataContext dc = conn.GetContext())
{
    string serverName = ""
    var result = dc.spGetServerName(ref serverName);                    
    return result.ToString();

}
Run Code Online (Sandbox Code Playgroud)

Ada*_*Dev 5

不,除了使用RETURN语句的int之外,你不能返回任何东西.您需要使用OUTPUT参数.它们更灵活.

例如

CREATE PROCEDURE dbo.ExampleSproc 
    @OutParam VARCHAR(10) OUTPUT
AS
SET @OutParam = 'Test'
...
GO
Run Code Online (Sandbox Code Playgroud)

更新:
有关如何检索输出参数的示例,请参阅此文章.