SQL-Prozedur hat keine Parameter und Argumente geliefert wurden

So, hier ist der code für die gespeicherte Prozedur, und meine Ausführung. Ich bekomme immer diese Meldung wenn ich versuche auf meinen Befehl ausführen:

Msg 8146, Ebene 16, Status 2, Prozedur sp_LabelFilm, Line 0

Verfahren sp_LabelFilm hat keine Parameter und Argumente geliefert wurden.

Irgendeine Idee warum? Ich bin versucht, zu aktualisieren eine Spalte in der Tabelle tblfilm zu sagen, wenn ein Film kurz -, Mittel-oder langfristig, basierend auf dessen Laufzeit.

ALTER PROCEDURE [dbo].[sp_LabelFilm]
AS
BEGIN
    DECLARE @Minutes INT, @duration char(10)

    DECLARE Filmcursor CURSOR FOR 
        (SELECT filmruntimeminutes, Duration FROM tblFilm)

    OPEN filmcursor

    FETCH NEXT FROM filmcursor INTO @duration

    WHILE (@@FETCH_STATUS = 0)
    BEGIN
        SELECT @Minutes = FilmRunTimeMinutes FROM tblFilm

        IF @Minutes < 120 
            SET @duration = 'short' 
        ELSE IF @Minutes < 150
            SET @duration = 'medium'
        ELSE
            SET @duration = 'long'

        FETCH NEXT FROM filmcursor INTO @duration

        UPDATE tblFilm 
        SET Duration = @duration
    END

    CLOSE filmcursor
    DEALLOCATE filmcursor
END



DECLARE @Minutes INT, @duration CHAR(10)

EXECUTE [dbo].[sp_LabelFilm] @minutes, @duration
Side note: Sie sollten nicht verwenden Sie die sp_ Präfix für Ihre gespeicherten Prozeduren. Microsoft hat vorbehalten, die mit einem Präfix für den eigenen Gebrauch (siehe Benennen von Gespeicherten Prozeduren), und Sie laufen Gefahr, einen name-clash-irgendwann in der Zukunft. Es ist auch schlecht für die gespeicherte Prozedur performance. Es ist am besten, einfach zu vermeiden sp_ und verwenden Sie etwas anderes als ein Präfix - oder kein Präfix!

InformationsquelleAutor Jon Doe | 2016-12-04

Schreibe einen Kommentar