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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie Auswählen, wie diese
Bitte finden Sie hier mehr
InformationsquelleAutor Vignesh Kumar A
Die Fehlermeldung ist selbsterklärend- sollten Sie die Namen aller Ihrer Parameter.
InformationsquelleAutor Aaron Bertrand
Einfaches Beispiel:
InformationsquelleAutor user8091839