我正在尝试执行经典的插入/更新方案,我需要更新数据库中的现有行,或者如果它们不存在则插入它们.
我已经找到了关于这个主题的上一个问题,但是它涉及我不使用的存储过程.我想只使用简单的SQL SELECT,INSERT和UPDATE语句,除非有更好的可用(MERGE语句在SQL Server 2005中不可用).
我想我的一般想法是这样的:
If the row is found update else insert
至于检查行的存在,在调用UPDATE或INSERT之前执行SELECT语句有多昂贵?或者最好只尝试UPDATE,检查受影响的行数,然后在受影响的行为0时执行INSERT?
最有效的方法是执行UPDATE
,然后执行INSERT
if @@rowcount
为零,如前面的答案所述.