1

私はSQLサーバーでプロシージャに取り組んでいます:

私はSQLサーバーを初めて使用していますが、次のエラーが発生します:

スカラー変数「@Course_Name」を宣言する必要があります

私の手順は次のとおりです。

USE [Hyaline management System]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[GetUpdateCourseID] 
@CourseID int
AS
BEGIN

SET NOCOUNT ON;
Update Course SET
    Course_Name = @Course_Name,
    Course_Duration = @Course_Duration
where CourseID = @CourseID;

END

誰かが私が間違っているところを教えてもらえますか? そして解決策は?

4

2 に答える 2

3

いくつかのパラメーターが欠落しているようです。とを実行しているのでUPDATE、それらをストアド プロシージャに渡す必要がある場合があります。Course_NameCourse_Duration

USE [Hyaline management System]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[GetUpdateCourseID] 
    @CourseID int,
    @Course_Name varchar(50),      -- change to the proper datatype
    @Course_Duration varchar(100)  -- change to the proper datatype
AS
BEGIN

SET NOCOUNT ON;

    UPDATE Course 
    SET Course_Name = @Course_Name,
        Course_Duration = @Course_Duration
    WHERE CourseID = @CourseID;

END
于 2012-10-29T19:35:33.707 に答える
1
CREATE PROCEDURE [dbo].[GetUpdateCourseID] 
    @CourseID int,
    @Course_Name varchar(max),
    @Course_Duration int -- just a guess, minutes as an int?
AS
SET NOCOUNT ON;
Update Course
   SET Course_Name = @Course_Name,
       Course_Duration = @Course_Duration
 WHERE CourseID = @CourseID;
GO

それは言う

スケーラー変数「@Course_Name」を宣言する必要があります

宣言していないからです。その変数を SP への入力として使用するように見えるため"AS"、本体セクションへのリードの前にパラメーター セクションに追加する必要があります。

p/s - エラー メッセージをカット アンド ペーストしてください。このエラーは理解できますが、正しく入力すれば Google で検索しやすいエラーもあります。これはscalar (a) ではなくscalerと述べるべきでした。

于 2012-10-29T19:35:54.760 に答える