1

これを実行してもエラーはスローされませんが、エントリの挿入/削除も行われません。なぜ機能しないのかわかりません。

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')
4

1 に答える 1

2

BEGINまず、:を置きENDます。IF'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

2番目と最後、最初IFが真の場合、内部IF (@trAction = 'rmvTR')は失敗し、何も行われません。

于 2012-06-20T15:26:17.523 に答える