我想知道在SQL中是否可以从存储过程返回varchar值,我看到的大部分示例返回值都是int
proc中的示例
declare @ErrorMessage varchar(255) if @TestFlag = 0 set @ErrorMessage = 'Test'
return @ErrorMessage
调用asp.net 更新:
错误: 将varchar值'Development'转换为数据类型int时转换失败。
using (DataContextDataContext dc = conn.GetContext())
{
string serverName = ""
var result = dc.spGetServerName(ref serverName);
return result.ToString();
}
答案 0 :(得分:5)
不,除了使用RETURN语句的int之外,你不能返回任何内容。 您需要使用OUTPUT参数。它们更灵活。
e.g。
CREATE PROCEDURE dbo.ExampleSproc
@OutParam VARCHAR(10) OUTPUT
AS
SET @OutParam = 'Test'
...
GO
更新
有关如何检索输出参数的示例,请参阅this article。
答案 1 :(得分:0)