所以這裏是存儲過程和我的執行代碼。SQL過程沒有提供參數和參數
消息8146,級別16,狀態2,過程sp_LabelFilm,行0
程序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_'並使用別的東西作爲前綴 - 或者根本沒有前綴! –