Хранимая процедура возвращает 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.

Другие вопросы по тегам