2012-06-20 52 views
1

当我运行它时,它不会抛出错误,但它不插入/删除条目。我不知道为什么它不起作用。我在做什么错误/这个SQL?

DECLARE @trAction VARCHAR(5) 
    SET @trAction = 'addTR' 

    IF EXISTS (SELECT TransgeneID 
      FROM tbl_MT 
      WHERE MouseID = '3' AND TransgeneID = '3') 
    IF (@trAction = 'rmvTR')  
     DELETE 
     FROM tbl_MT 
     WHERE MouseID = '3' AND TransgeneID = '3' 
    ELSE 
    IF (@trAction = 'addTR') 
     INSERT INTO tbl_MT 
     VALUES ('3', '3') 
+1

确实存在一行'MouseID ='3'AND TransgeneID ='3''? – Lamak

回答

2

首先,把BEGINENDIF's

DECLARE @trAction VARCHAR(5) 
    SET @trAction = 'addTR' 

    IF EXISTS (SELECT TransgeneID 
      FROM tbl_MT 
      WHERE MouseID = '3' AND TransgeneID = '3') 
    BEGIN 
    IF (@trAction = 'rmvTR')  
    BEGIN 
     DELETE 
     FROM tbl_MT 
     WHERE MouseID = '3' AND TransgeneID = '3' 
    END 
    END 
    ELSE 
    BEGIN 
    IF (@trAction = 'addTR') 
    BEGIN 
     INSERT INTO tbl_MT 
     VALUES ('3', '3') 
    END 
    END 

第二个也是最后,如果第一个IF是真实的,内IF (@trAction = 'rmvTR')将失败,什么都不会做。

+0

感谢您的快速回复。在{BEGIN}和{END}之后,它起作用。当第一个{IF}为真且内部{IF(@trAction ='rmvTR')}我希望它无所作为。那是故意的。但很好的眼睛和感谢提出我的注意力。 – MadushM

+0

@MadushM然后你应该投票并接受答案:)http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –

+1

我的不好,我只是做了。 ;) – MadushM

相关问题