2009-05-29 147 views
7

我想知道如果在SQL中是否有可能從存儲過程返回varchar值,我已經看到大多數例子的返回值是一個int。在過程中存儲過程返回varchar

實施例:

declare @ErrorMessage varchar(255) 

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

return @ErrorMessage 

回答

14

可以使用出參數或resulset返回任何數據類型。
返回值應該總是整數

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

here

7

您需要創建一個存儲功能:

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) 

馬克