2009-05-29 44 views
7

Tôi muốn biết nếu trong SQL là nó có thể trả về một giá trị varchar từ một thủ tục được lưu trữ, hầu hết các ví dụ tôi đã thấy giá trị trả về là một int.lưu trữ thủ tục trả về varchar

Ví dụ trong một thủ tục:

declare @ErrorMessage varchar(255) 

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

return @ErrorMessage 

Trả lời

14

Bạn có thể sử dụng ra tham số hoặc resulset trả lại bất kỳ kiểu dữ liệu.
giá trị Return nên luôn luôn có số nguyên

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

Taken từ here

7

Bạn sẽ cần phải tạo ra một chức năng lưu trữ cho rằng:

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 

Sau đó bạn có thể sử dụng chức năng này được lưu trữ như thế này:

select dbo.GetLookupValue(4) 

Marc

Các vấn đề liên quan