Хранимая процедура возвращает varchar
Я хотел бы знать, если в SQL можно вернуть varchar
значение из хранимой процедуры, большинство примеров, которые я видел возвращаемое значение, является int.
Пример в процедуре:
declare @ErrorMessage varchar(255)
if @TestFlag = 0
set @ErrorMessage = 'Test'
return @ErrorMessage
3 ответа
Решение
Вы можете использовать параметр out или результат, чтобы вернуть любой тип данных.
Возвращаемые значения всегда должны быть целыми
CREATE PROCEDURE GetImmediateManager
@employeeID INT,
@managerName VARCHAR OUTPUT
AS
BEGIN
SELECT @managerName = ManagerName
FROM HumanResources.Employee
WHERE EmployeeID = @employeeID
END
Взято отсюда
Вам нужно будет создать хранимую функцию для этого:
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)
Марк
Код возврата хранимой процедуры всегда целочисленный, но вы можете иметь OUTPUT
параметры любого типа - см. http://msdn.microsoft.com/en-us/library/aa174792.aspx.