【发布时间】:2017-01-11 15:22:56
【问题描述】:
我已尝试制作一个插入价格的程序:
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。
为什么会这样,我该如何解决这个问题?
【问题讨论】:
-
错误信息很清楚,您必须添加
DECLARE @date datetime并在运行exec 的同一批次中设置此变量。 -
在我们给出可接受的答案之前,了解您正在尝试做什么有时会有所帮助。所以... 您在这里的意图是什么?您希望发生什么?
-
我正在尝试创建一个程序,该程序将能够根据程序的内容进行插入。那么这里我有一个变量声明的问题,我需要使用
getdate()函数来获取exec proc 的当前时间。抱歉英语不好,这不是我的母语。
标签: sql sql-server tsql stored-procedures sql-server-2012