2009-05-29 6 views
7

Je voudrais savoir si dans SQL est-il possible de retourner une valeur varchar à partir d'une procédure stockée, la plupart des exemples que j'ai vu la valeur de retour est un int.procédure stockée retourne varchar

Exemple dans une procédure:

declare @ErrorMessage varchar(255) 

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

return @ErrorMessage 

Répondre

14

Vous pouvez utiliser des paramètres ou resulset pour retourner tout type de données.
valeurs de retour doivent toujours être entier

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

Taken de here

7

Vous devez créer une fonction stockée pour que:

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 

Vous pouvez alors utiliser cette fonction stockée comme ceci:

select dbo.GetLookupValue(4) 

Marc

Questions connexes