2012-04-11 15 views
0

ich eine Tabelle wie folgt in SQL Server haben:Inserts und Updates in SQL Server für eine gespeicherte Prozedur

varID(PK) dataID(PK) is_used 
A   1   0 
B   1   0 

Dann, wenn die varID/dataID ich Laden von Daten zu aktualisieren, um 1 is_used Combo besteht, und fügen Sie es in Andernfalls.

Also muss ich diese varID/dataID Combos einfügen/aktualisieren.

varID(PK) dataID(PK) 
B   1   
C   1 

So ist die aktualisierte Tabelle würde wie folgt aussehen:

varID(PK) dataID(PK) is_used 
A   1   0 
B   1   1 
C   1   1 

Was ist der einfachste Weg, dies zu tun? Ich werde es in einer gespeicherten Prozedur tun.

Antwort

5

Prozedur versucht is_used mit einem Schlüssel zu aktualisieren. Wenn dies nicht erfolgreich ist, wird eine neue Zeile eingefügt. Hinweis Ich gebe 0 als Standardwert für is_used - ich denke, is_used = 1 für (C, 1) ist ein Fehler.

create proc AddVarDataCombo (@varID varchar(100), @dataID int) 
as 
    set nocount on 

    update ATable 
     set is_used = 1 
    where varID = @varID 
     and dataID = @dataID 

    if @@rowcount = 0 
    begin 
     insert into ATable 
      values (@varID, @dataID, 0) 
    end 
Verwandte Themen