更新或插入,具体取决于记录是否已存在

时间:2011-07-20 20:02:02

标签: sql-server

我想用“StudentID”的WHERE子句更新“StudentTable”中的“Grade”列。如果在“StudentTable”中找不到“StudentID”,那么我想改为插入数据。

我该怎么做?

2 个答案:

答案 0 :(得分:2)

首先检查记录是否存在,是否确实执行了更新, 如果它不存在,则表示您需要插入它。

你走了:

IF EXISTS(SELECT * FROM StudentTable WHERE StudentID = @MyID)
  BEGIN 
    --exists perform update
    UPDATE StudentTable SET Grade = 'A+' WHERE StudentID=@MyID
    --other code...
  END
ELSE
  BEGIN
    --record does not exist INSERT it
     INSERT INTO StudentTable(MyID, Grade) VALUES (@MyID, 'A+')
    --other code...
  END

答案 1 :(得分:1)