2011-10-24 94 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。如果你的表中的每一行都需要不同的語句,你可能需要編寫一個使用遊標的存儲過程。 –

相關問題