2009-05-29 10 views
7

Ich möchte wissen, ob es in SQL möglich ist, einen varchar Wert aus einer gespeicherten Prozedur zurückzugeben, die meisten der Beispiele, die ich gesehen habe, ist der Rückgabewert ein Int.gespeicherte Prozedur gibt varchar zurück

Beispiel innerhalb einer Prozedur:

declare @ErrorMessage varchar(255) 

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

return @ErrorMessage 

Antwort

14

können Sie Parameter verwenden oder die resulset jeden Datentyp zurück.
Rückgabewerte sollten immer integer sein immer integer Rückgabecode

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

Entnommen here

7

Sie müssen eine gespeicherte Funktion dafür schaffen:

select dbo.GetLookupValue(4) 

Marc

:

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 

Anschließend können Sie diese gespeicherte Funktion wie diese verwenden

Verwandte Themen