これはストアドプロシージャと私の実行のコードです。 0
手順sp_LabelFilmパラメータがないと引数が与えられたSQLプロシージャにはパラメータがありません。引数は提供されました
メッセージ8146、レベル16、状態2、手順sp_LabelFilm、ライン:私は私のコマンドを実行しようとすると、私はこのメッセージを得続けます。
何故でしょうか?私は、テーブルtblfilmの列を更新して、ムービーが実行時間に基づいて短、中、または長かどうかを判断しようとしています。
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
サイドノート:ストアドプロシージャのプレフィックス 'sp_'を使用しないでください**。マイクロソフトは、[*ストアドプロシージャの名前付け*を参照してください](http://msdn.microsoft.com/en-us/library/ms190669%28v=sql.105%29.aspx)、およびあなたはいつか名前衝突のリスクを将来実行します。 [ストアドプロシージャのパフォーマンスにも悪い](http://www.sqlperformance.com/2012/10/t-sql-queries/sp_prefix)単に 'sp_'を避け、他の何かを接頭辞として使うのが最善です。 –