"Erklären muß, die Skalare variable" Fehler beim ausführen einer gespeicherten Prozedur

Habe ich versucht zu machen, ein Verfahren zum einfügen eines Preis:

create procedure prInsertPrice
@NuggetID varchar(5),
@Unit_Price money,
@Start_Date datetime,
@End_Date datetime
as
begin
DECLARE @date AS DATETIME
SET @date = GETDATE()
    if
        (
        (@NuggetID like 'N[0-9][0-9]')
        and
        (@Unit_Price is not null)
        and
        (@Start_Date is not null)
        )
    begin
        print 'Insert Success'
        insert NuggetPrice (NuggetId, Unit_Price, Start_Date, End_Date)
        values (@NuggetID, @Unit_Price, @Start_Date, @End_Date)
    end
    else
    begin
        print 'Failed to insert'
    end
end

Wenn ich die Prozedur auszuführen, es ist in Ordnung, aber wenn ich das Verfahren so:

EXEC prInsertPrice 'N01', 20000, @date, null

Bekomme ich die Fehlermeldung:

Erklären muß, die Skalare variable @Datum.

Warum ist das so und wie kann ich das problem beheben?

  • Die Fehlermeldung ist doch ziemlich klar, Sie haben zum hinzufügen von DECLARE @date datetime und setzen Sie diese variable in der gleichen charge wie Sie laufen den exec.
  • Manchmal hilft es, zu wissen, was Sie versuchen zu tun, bevor wir geben können, eine akzeptable Antwort. so... WAS WAR IHRE ABSICHT HIER? was hast du erwartet zu geschehen?
  • Ich bin versucht, erstellen Sie eine Prozedur, wird in der Lage sein zu tun, legen Sie basierend auf dem Inhalt der procedur. Auch hier habe ich ein problem mit Deklaration von Variablen, die ich war erforderlich, um getdate() - Funktion, um die aktuelle Uhrzeit, wenn die exec proc. sorry für schlechtes Deutsch, ist nicht meine Muttersprache.
InformationsquelleAutor Aditya Rizky | 2017-01-11
Schreibe einen Kommentar