2009-05-29 28 views
7

Me gustaría saber si en SQL es posible devolver un valor varchar desde un procedimiento almacenado, la mayoría de los ejemplos que he visto el valor devuelto es un int.procedimiento almacenado devuelve varchar

ejemplo dentro de un procedimiento:

declare @ErrorMessage varchar(255) 

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

return @ErrorMessage 

Respuesta

14

Puede utilizar cabo parámetro o la resulset devolver cualquier tipo de datos.
Valores de retorno siempre debe ser un número entero

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

Tomado de here

7

Usted tendrá que crear una función almacenada para ello:

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 

continuación, puede utilizar esta función almacenada como esto:

select dbo.GetLookupValue(4) 

Marc

Cuestiones relacionadas