Unter 2008 Stored Proc output table Parameter möglich?

07/06/2009 - 22:51 von Frederick Steinke | Report spam
Hallo,

habe eine Frage. Ist es möglich unter SQL 2008 einen Datentyp Table für die
Ausgabe - Output parameter zu definieren?
Erhalte immer ne Fehlermeldung -Die '@ausgabe'-Skalarvariable muss
deklariert werden.-

Angeblich solls doch aber möglich sein oder gilt das nur für eingabe
Parameter?

CREATE PROCEDURE storedproc2

@eingabe nvarchar(50), @ausgabe TABLE (Cola int PRIMARY KEY, Colb char(3))
output

AS
begin
set nocount on;

declare @backvalue nvarchar(50);

DECLARE @TableVar TABLE (Cola int PRIMARY KEY, Colb char(3))
INSERT INTO @TableVar VALUES (1, 'abc')
INSERT INTO @TableVar VALUES (2, 'def')
SELECT @ausgabe = @TableVar

end
GO

Bekomme aber immer nur folgende Fehlermeldungen.


Meldung 156, Ebene 15, Status 1, Prozedur storedproc2, Zeile 3
Falsche Syntax in der Nàhe des 'TABLE'-Schlüsselworts.
Meldung 137, Ebene 15, Status 1, Prozedur storedproc2, Zeile 14
Die '@ausgabe'-Skalarvariable muss deklariert werden.

Was làuft da falsch?

Gruß Frederick und danke für jeden Tip
 

Lesen sie die antworten

#1 Uli Münch
08/06/2009 - 08:43 | Warnen spam
Hallo Frederick,

es gibt einige Unterschiede bei Output-Parametern zwischen Procs und Funcs.
So sollte es gehen.

CREATE PROCEDURE storedproc2

@eingabe nvarchar(50)

AS
begin
set nocount on;

declare @backvalue nvarchar(50);

DECLARE @TableVar TABLE (Cola int PRIMARY KEY, Colb char(3))
INSERT INTO @TableVar VALUES (1, 'abc')
INSERT INTO @TableVar VALUES (2, 'def')
SELECT * FROM @TableVar

end
GO

Gruss Uli



"Frederick Steinke" schrieb im Newsbeitrag
news:
Hallo,

habe eine Frage. Ist es möglich unter SQL 2008 einen Datentyp Table für
die Ausgabe - Output parameter zu definieren?
Erhalte immer ne Fehlermeldung -Die '@ausgabe'-Skalarvariable muss
deklariert werden.-

Angeblich solls doch aber möglich sein oder gilt das nur für eingabe
Parameter?

CREATE PROCEDURE storedproc2

@eingabe nvarchar(50), @ausgabe TABLE (Cola int PRIMARY KEY, Colb char(3))
output

AS
begin
set nocount on;

declare @backvalue nvarchar(50);

DECLARE @TableVar TABLE (Cola int PRIMARY KEY, Colb char(3))
INSERT INTO @TableVar VALUES (1, 'abc')
INSERT INTO @TableVar VALUES (2, 'def')
SELECT @ausgabe = @TableVar

end
GO

Bekomme aber immer nur folgende Fehlermeldungen.


Meldung 156, Ebene 15, Status 1, Prozedur storedproc2, Zeile 3
Falsche Syntax in der Nàhe des 'TABLE'-Schlüsselworts.
Meldung 137, Ebene 15, Status 1, Prozedur storedproc2, Zeile 14
Die '@ausgabe'-Skalarvariable muss deklariert werden.

Was làuft da falsch?

Gruß Frederick und danke für jeden Tip

Ähnliche fragen