存储过程返回varchar

问题描述:

我想知道如果在SQL中是否有可能从存储过程返回varchar值,我已经看到大多数例子的返回值是一个int。在过程中存储过程返回varchar

实施例:

declare @ErrorMessage varchar(255) 

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

return @ErrorMessage 

可以使用出参数或resulset返回任何数据类型。
返回值应该总是整数

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

here

采取了存储过程的返回代码始终是整数,但你可以有OUTPUT参数是任何所需类型的 - 见http://msdn.microsoft.com/en-us/library/aa174792.aspx

您需要创建一个存储功能:

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) 

马克