Wie pass output-parameter einer Gespeicherten Prozedur?

Ich geschrieben habe, eine gespeicherte Prozedur mit dem folgenden format:

ALTER PROCEDURE usp_data_migration 
   (@sourceDatabase varchar(50),
    @sourceTable varchar(50),
    @targetDatabase varchar(50),
    @targetTable varchar(50),
    @finaloutput varchar(max) output)
AS
BEGIN
----Set of SQL Blocks


END

Dann bin ich durch das ausführen der Prozedur:

DECLARE @finaloutput1 varchar(300)

EXEC usp_data_migration 'Yousuf', 'emp', '[City Branch]', 'emp_tgt', @finaloutput1 output 

SELECT @finaloutput1 

Durch ausführen diese Weise habe ich nicht die richtige Ausgabe.

Wenn ich ausführen so:

DECLARE @finaloutput1 varchar(300)

EXEC usp_data_migration @sourceDatabase = 'Yousuf',
                        @sourceTable = 'emp',
                        @targetDatabase = '[City Branch]',
                        @targetTable = 'emp_tgt',
                        @finaloutput1 output 

SELECT @finaloutput1 

Bekomme ich eine Fehlermeldung, die besagt:

Msg 119, Ebene 15, Status 1, Zeile 41
Müssen pass-parameter Nummer 5 und die nachfolgenden Parameter '@name = value'. Nach der form '@name = value' verwendet wurde, werden alle nachfolgenden Parameter müssen übergeben werden in der form '@name = value'.

Und wenn ich entfernt die Ausgabe der parameter und führen Sie die Prozedur, bekomme ich meine gewünschte Ausgabe, aber ich bin nicht in der Lage, mein Ergebnis als Ausgabe.

EXEC usp_data_migration @sourceDatabase = 'Yousuf',
                        @sourceTable = 'emp',
                        @targetDatabase = '[City Branch]',
                        @targetTable = 'emp_tgt'

Was soll ich tun?

Vielen Dank im Voraus.

InformationsquelleAutor Yousuf Sultan | 2014-01-11

Schreibe einen Kommentar