当前位置:  开发笔记 > 数据库 > 正文

执行存储过程时"必须声明标量变量"错误

如何解决《执行存储过程时"必须声明标量变量"错误》经验,为你挑选了1个好方法。

我试图制作一个插入价格的程序:

create procedure prInsertPrice
@NuggetID varchar(5),
@Unit_Price money,
@Start_Date datetime,
@End_Date datetime
as
begin
DECLARE @date AS DATETIME
SET @date = GETDATE()
    if
        (
        (@NuggetID like 'N[0-9][0-9]')
        and
        (@Unit_Price is not null)
        and
        (@Start_Date is not null)
        )
    begin
        print 'Insert Success'
        insert NuggetPrice (NuggetId, Unit_Price, Start_Date, End_Date)
        values (@NuggetID, @Unit_Price, @Start_Date, @End_Date)
    end
    else
    begin
        print 'Failed to insert'
    end
end

当我执行程序时没关系,但是当我运行这样的程序时:

EXEC prInsertPrice 'N01', 20000, @date, null

我收到错误消息:

必须声明标量变量@date.

为什么这样,我该如何纠正这个问题?



1> 小智..:

exec语句中的@date与存储过程中的@date不同.

你应该做的事情如下:

DECLARE @date AS DATETIME
SET @date = GETDATE()
EXEC prInsertPrice 'N01', 20000, @date, null


他确实一步一步引导你.事实上,它为您提供了所需的所有代码.它的哪一部分不清楚?
推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有