2012-06-20 50 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

相關問題