我正在尝试在我们服务器上的计划任务上运行存储过程。存储过程运行查询并为我们的库存程序提供我们的库存总量。
我已设置运行sqlcmd.exe的任务,并将以下查询作为.sql文件中的变量传递。问题是我不是100%确定我正在通过正确的变量,因为我从SQL收到错误。
以下是计算现有库存时服务器运行的任务。
(@P1 int,@P2 int,@P3 bit,@P4 bit,@P5 bit)
declare @SessionID int
declare @Res int
exec @Res = stk_CompileStockOnHandOnDate
'2079-06-01',
null,
@P1,
@P2,
1,
@P3,
@P4,
@P5,
@SessionID out
select @Res Result, @SessionID SessionID
我在SQLCMD中收到的错误消息是
Msg 1050, Level 15, State 1, Server SERVER\SQLEXPRESS, Line 1
This syntax is only allowed for parameterized queries.
Msg 137, Level 15, State 2, Server SERVER\SQLEXPRESS, Line 6
Must declare the scalar variable "@P1".
关于我哪里出错的任何想法?
答案 0 :(得分:0)
好的,所以我发现了发生了什么,我需要修改我通过的查询来重新选择正确的参数(大多数都是null)
以下是对我这样的存储过程有问题的人的完整查询!
USE [DATABASENAME]
GO
DECLARE @return_value int,
@SessionID int
EXEC @return_value = [dbo].[stk_CompileStockOnHandOnDate]
@OnDate = '2079-06-01',
@InSessionID = NULL,
@ProductTagID = NULL,
@StockLocationTagID = NULL,
@ExtendedInformation = 1,
@UnitCostReplacement = NULL,
@UnitCostAVCO = NULL,
@UnitCostFIFO = NULL,
@SessionID = @SessionID OUTPUT
SELECT @SessionID as N'@SessionID'
SELECT 'Return Value' = @return_value
GO