我有一个存储过程,它有一个varchar输入参数。主体有几个IF条件,与此输入参数进行比较。尝试尽可能地,虽然一切似乎都很好,但它没有进入IF条件之一。知道为什么会这样吗?
CREATE PROCEDURE [dbo].[spGetSnapshot]
@ScenarioEnum varchar(10),
@LabelerCodes varchar(200) = null,
@StatusFilter varchar(200) = null
AS
BEGIN
IF(@ScenarioEnum = 'ManufacturerAdjudicationSnapshot')
PRINT 'Inside the if statement'
END
IF(@ScenarioEnum = 'Works')
PRINT 'Inside the 2ND if statement'
END
答案 0 :(得分:1)
这是因为输入参数的长度太小。 由于传递的参数的长度大于为参数保留的空间,因此输入将被截断为“Manuf' 将为ScenarioEnum参数保留的长度增加到适当的值,这将开始工作!
答案 1 :(得分:1)
ONBUILD ADD package.json /project/
ONBUILD RUN //do some stuff
ONBUILD ADD . /project
答案 2 :(得分:0)
只需删除一个END
:
CREATE PROCEDURE [dbo].[spGetSnapshot]
@ScenarioEnum varchar(10),
@LabelerCodes varchar(200) = null,
@StatusFilter varchar(200) = null
AS
BEGIN
IF(@ScenarioEnum = 'ManufacturerAdjudicationSnapshot')
PRINT 'Inside the if statement'
IF(@ScenarioEnum = 'Works')
PRINT 'Inside the 2ND if statement'
END