CURSORS VS. MERGE FUNCTION
Hej,Jeg er ny i T-sql verdenen, og har forsøgt mig med nogle forskellige løsninger på min problemstilling. Håbede at kunne anvende MERGE da flere har skevet at dette er den rigtige løsning til at både INSERTE, UPDATE og DELETE een og samme arbejdsgang, og samtidig ikke anvende CURSORs. Men skal være kompatibel med både SQL Server 2005/08
Problemstilling: skal lave en sp der kan følgende..
"replikering af data i samme tabel på samme database, hvor "dataset" afgør i hvilket "regnskab" data ligger.
Tabel: InventTable (lagerkartotek)
psodukode:
while Select Itemnumber,Itemname,.. from InventTable AS Basedata
index itemnumberIdx
where dataset = 'dat'
{
while select dataset from sysinfo where dataset <> 'dat'
{
select inventTable forupdate AS InventUpd
where inventUPd.Itemnumber = BaseData.ItemNumber
and InventUpd.dataset = sysinfo.dataset;
if not inventUpd.Rownumber
{
// INSERT
}
else
{
// UPDATE
}
}
}
Hvorledes skrives en sp optimalt for denne opgave? og kan det overhovedet lade sig gøre ved anvendelse af MERGE?
I de eksempler jeg har læst er det forskellige tabeller der sammenlignes, og ikke som i mit tilfælde samme tabel hvor der differensieres på feltet dataset.