存储过程返回varchar

时间:2009-05-29 05:01:59

标签: sql-server stored-procedures

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

程序中的示例:

declare @ErrorMessage varchar(255)

if @TestFlag = 0
   set @ErrorMessage = 'Test'

return @ErrorMessage 

3 个答案:

答案 0 :(得分:18)

您可以使用out参数或结果集来返回任何数据类型 返回值应始终为整数

CREATE PROCEDURE GetImmediateManager
   @employeeID INT,
   @managerName VARCHAR OUTPUT
AS
BEGIN
   SELECT @managerName = ManagerName
   FROM HumanResources.Employee 
   WHERE EmployeeID = @employeeID
END

取自here

答案 1 :(得分:8)

您需要为此创建一个存储函数:

create function dbo.GetLookupValue(@value INT)
returns varchar(100)
as begin
  declare @result varchar(100)

  select
    @result = somefield
  from 
    yourtable
  where 
    ID = @value;

  return @result
end

然后你可以像这样使用这个存储的函数:

select dbo.GetLookupValue(4) 

马克

答案 2 :(得分:5)

存储过程的返回码始终是整数,但您可以使用任何所需类型的OUTPUT参数 - 请参阅http://msdn.microsoft.com/en-us/library/aa174792.aspx