1

我正在处理 SQL Server 中的一个过程:

我是 SQL Server 的新手,我收到此错误:

必须声明标量变量“@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

看来,您缺少一些参数。由于您正在执行UPDATEand 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 回答