存储过程以返回/结果字符串

时间:2011-04-15 23:49:13

标签: sql sql-server stored-procedures

我刚刚开始工作/学习商店程序。我只是想知道Store Procedure是否可以返回一个字符串。

现在我正在处理的商店程序需要一个参数(客户#)并返回两个字段 - vehicle#和ETA。我只是想知道这是否可以放在一个字符串上,例如“你的车辆#1234与ETA在10分钟内完成。”如果没有返回任何值,则显示某种消息。

提前致谢。

3 个答案:

答案 0 :(得分:2)

CREATE PROCEDURE GetVehicleInfo 
@CustId INT 
OUTPUT AS

  RETURN (SELECT 'Your vehicle # is ' + id + ' with ETA in ' + ETA + ' minutes' 
          FROM YourTable WHERE CustId = @CustId )

GO

答案 1 :(得分:0)

好吧,一旦我返回一个完整的链接:)例如,在MSSQL中,您可能首先在过程中声明一个结果表,在过程结束时,您可以执行以下语句:

SELECT 'whatever string you want to put' + columnName + ' whatever...' FROM @result

@result是声明的表

编辑:如果columnName类型为INT,则可以使用CONVERT函数。希望这会有所帮助。

答案 2 :(得分:0)

对于Sql server,它就像下面的代码一样简单:

select 'Your vehicle # is ' + vehiclenum + ' with ETA in ' eta ' minutes' from table_1
where your_select_criteria

在那个sql中,vehiclenum和eta都是table_1中的列名,但你可以在这个查询中同样进行连接。

如果vehiclenum是一个int,那么你需要使用convert函数转换它,如下所示:

select 'Your vehicle # is ' + convert(varchar(10), vehiclenum) + ' with ETA in ' eta ' minutes' 
from table_1
where your_select_criteria

最后一个难题是将价值转化为代码。实际上,这将返回一个记录集。

使用SqlClient,您将使用ExecuteScalar方法作为描述here on MSDN

var outputText = cmd.ExecuteScalar();