хранимая процедура возвращает varchar - PullRequest
10 голосов
/ 29 мая 2009

Я хотел бы знать, если в SQL можно вернуть значение varchar из хранимой процедуры, большинство примеров, которые я видел, возвращаемое значение - int.

Пример в процедуре:

declare @ErrorMessage varchar(255)

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

return @ErrorMessage 

Ответы [ 3 ]

18 голосов
/ 29 мая 2009

Вы можете использовать параметр out или результат, чтобы вернуть любой тип данных.
Возвращаемые значения всегда должны быть целыми числами

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

Взято с здесь

8 голосов
/ 29 мая 2009

Для этого вам нужно создать сохраненную функцию:

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) 

Марк

5 голосов
/ 29 мая 2009

Код возврата хранимой процедуры всегда целочисленный, но вы можете иметь OUTPUT параметры любого желаемого типа - см. http://msdn.microsoft.com/en-us/library/aa174792.aspx.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...