存储过程返回varchar

rmd*_*ssa 10 sql-server stored-procedures

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

程序中的示例:

declare @ErrorMessage varchar(255)

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

return @ErrorMessage 
Run Code Online (Sandbox Code Playgroud)

Bin*_*ony 19

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

CREATE PROCEDURE GetImmediateManager
   @employeeID INT,
   @managerName VARCHAR OUTPUT
AS
BEGIN
   SELECT @managerName = ManagerName
   FROM HumanResources.Employee 
   WHERE EmployeeID = @employeeID
END
Run Code Online (Sandbox Code Playgroud)

取自这里


mar*_*c_s 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
Run Code Online (Sandbox Code Playgroud)

然后,您可以像这样使用此存储的函数:

select dbo.GetLookupValue(4) 
Run Code Online (Sandbox Code Playgroud)


Ale*_*lli 5

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