Festlegen eines SP-Rückgabewerts auf eine Variable in SQL Server

Ich habe eine Sproc, die eine einzelne Zeile und Spalte mit einem Text zurückgibt, ich muss diesen Text auf eine Variable setzen, etwas wie:

declare @bla varchar(100)
select @bla = sp_Name 9999, 99989999, 'A', 'S', null

, aber natürlich funktioniert dieser Code nicht...

danke!

Antwort auf "Festlegen eines SP-Rückgabewerts auf eine Variable in SQL Server " 3 von antworten

Wenn die gespeicherte Prozedur einen einzelnen Wert zurückgibt, können Sie einen der Parameter auf der gespeicherten Prozedur als OUTPUT-Variable definieren, und dann würde die gespeicherte Prozedur den Wert des Parameters

CREATE PROCEDURE dbo.sp_Name
    @In INT,
    @Out VARCHAR(100) OUTPUT

AS
BEGIN
    SELECT @Out = 'Test'
END
GO

festlegen.

Wenn Sie die gespeicherte Prozedur nicht ändern können, besteht eine andere Lösung darin, eine temporäre Tabelle zu definieren und die Ergebnisse in diese

DECLARE @Output VARCHAR(100)

CREATE TABLE #tmpTable
(
    OutputValue VARCHAR(100)
)
INSERT INTO #tmpTable (OutputValue)
EXEC dbo.sp_name 9999, 99989999, 'A', 'S', null

SELECT
    @Output = OutputValue
FROM 
    #tmpTable

DROP TABLE #tmpTable
einzufügen.
DECLARE
  @out INT

EXEC @out = sp_name 'param', 2, ...

Mehr Infos in T-SQL "EXECUTE" help (Help is from MSSQL 2008 but this works in 2000 too) (Hilfe ist von MSSQL 2008, aber das funktioniert auch im Jahr 2000)