我正在编写一个存储过程,它正在为if而不是for else工作。因为如果我得到正确的ID值,但是对于其他它只是给我null。
SELECT @ID = ID FROM PRODUCTS WHERE SN = @SN
SELECT @Chip_ID = Chip_ID FROM PRODUCTS WHERE SN = @SN
SELECT @Power = Power From Module_Cycle WHERE ChipID = @Chip_ID
SELECT @Test_ID=Test_ID FROM TestEE_Mod WHERE ID=@ID AND @TypeID = TypeID
IF(@Test_ID IS NOT NULL)
BEGIN
IF(@TypeID = '3')
BEGIN
SELECT @Temp_TestID=TestID FROM TempCycle WHERE ChipID = @Chip_ID AND @Power = 'false'
BEGIN
UPDATE TestEE_Mod SET Temp_TestID = @Temp_TestID WHERE ID = @ID AND TypeID = @TypeID
END
END
ELSE
BEGIN
SELECT @Temp_TestID=TestID FROM TempCycle WHERE ChipID = @Chip_ID AND @Power = 'true'
BEGIN
UPDATE TestEE_Mod SET Temp_TestID = @Temp_TestID WHERE ID = @ID AND TypeID = @TypeID
END
END
END
答案 0 :(得分:1)
问题很可能出在@Power
变量中。在您的两个SELECT
语句中,唯一的区别是@Power = 'false'
条款中包含WHERE
,而另一个包含@Power = 'true'
。
由于@Power
是一个变量,而不是TempCycle
表格中的实际列,我猜你实际上是想在两者中按Power = @Power
进行过滤。