SQL Server存储过程任务



我正在尝试在服务器上的计划任务上运行存储过程。存储过程运行一个查询,并给出库存程序的库存总数。

我已经设置了运行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 SERVERSQLEXPRESS, Line 1
This syntax is only allowed for parameterized queries.
Msg 137, Level 15, State 2, Server SERVERSQLEXPRESS, Line 6
Must declare the scalar variable "@P1".

我哪里错了,有什么想法吗?

好的,所以我发现发生了什么,我需要修改查询,我正在通过反映正确的参数(其中大部分是空的)

对于像我一样在存储过程中遇到麻烦的人来说,这里是完整的查询!

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

最新更新