如果项目存在,如何应用更新,否则插入

时间:2011-10-24 09:10:01

标签: sql sql-server sql-server-2005 sql-server-2008

如何创建从表顶部开始并将值与null进行比较的过程    - 如果找到匹配项,请在此位置插入元素。    - 如果不是,则将元素插入新行

我需要更正第二行,其中包含4个最后一列中的空值,而不管Id和PropertyId列中的值

以下是我的数据库

的屏幕截图

enter image description here

以下是数据样本:

enter image description here

现在它可以正常工作,这对我来说不合适,相反它应该像上一个屏幕截图那样用空值更新行

enter image description here

但是下一个条目应该覆盖Item,ItemId,InstanceId和Instance的NULL值

enter image description here

1 个答案:

答案 0 :(得分:1)

编写存储过程,如:

create procedure INSERT_OR_UPDATE as
begin
  if exists ( select * from Numerations where <your condition> )
    begin
      update Numerations set < ... > where < ... >
    end
  else
    begin
      insert into Numerations values <...>
    end
end

你必须检查语法,因为我现在无法测试我的代码。