我想知道在SQL中是否可以从存储过程返回varchar
值,我看到返回值的大多数示例都是int。
程序中的示例:
declare @ErrorMessage varchar(255)
if @TestFlag = 0
set @ErrorMessage = 'Test'
return @ErrorMessage
答案 0 :(得分:18)
您可以使用out参数或结果集来返回任何数据类型 返回值应始终为整数
CREATE PROCEDURE GetImmediateManager
@employeeID INT,
@managerName VARCHAR OUTPUT
AS
BEGIN
SELECT @managerName = ManagerName
FROM HumanResources.Employee
WHERE EmployeeID = @employeeID
END
取自here
答案 1 :(得分:8)
您需要为此创建一个存储函数:
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)
马克
答案 2 :(得分:5)
存储过程的返回码始终是整数,但您可以使用任何所需类型的OUTPUT
参数 - 请参阅http://msdn.microsoft.com/en-us/library/aa174792.aspx。