2011-10-24 45 views
0

如何创建从表格顶部开始并将值与空值进行比较的过程 - 如果找到匹配项,请在此位置插入一个元素。 - 如果没有,元素插入新行如何申请如果存在项目,则更新,否则插入

我需要纠正其中包含4分最后一列空值的第二行,无论在ID值和属性ID列

下面是截图我的DB

enter image description here

下面是数据的样本:

enter image description here

现在,它的工作原理是这样,这是不适合我,而是应该像过去的截图

enter image description here

但下一个条目应该覆盖NULL值的项目空值更新该行,项目Id,INSTANCEID和实例

enter image description here

+2

你能举一个你想要做什么的例子吗?你为什么需要光标? –

+1

请给出表格结构,示例数据并解释“在这个位置上元素的制造”是什么意思?听起来像是不需要光标的东西,可以以基于集合的方式完成(可能使用'Merge' for 2008) –

+0

@Martin Smith我已更新我的问题 – revolutionkpi

回答

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 

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

+0

我已经更新了我的问题 – revolutionkpi

+0

@尼古拉Musatti,因此,例如物业栏应该是:创造的过程INSERT_OR_UPDATE是否存在如 开始 (SELECT * FROM Numerations凡财产= NULL) 开始 更新数字集属性其中属性=属性 结束 其他 开始 插入到数字值@Property 结束 结束 – revolutionkpi

+0

我的示例中的存储过程只执行一条语句,即insert或update。如果你的表中的每一行都需要不同的语句,你可能需要编写一个使用游标的存储过程。 –

相关问题