Einfügen oder aktualisieren, wenn der Datensatz in der Tabelle ist

8

Ich habe einen Tisch Autos und AutoBeschreibungen

  

Autos: IDCar (int, PK, Autoincrement)   Autosbeschreibungen (IDDescription,   Header (nvarchar), Inhalt (nvarchar), idCar (int, FK)

In der Anwendung füge ich Autos hinzu und bearbeite bestehende.

Meine Probleme:

1. Wie man geändertes Auto mit Beschreibungen in der Datenbank speichert ??

Ich habe ID von Auto, und ich habe IDs von Beschreibungen

Class CarDescirption hat keinen Pool wie IsChanged, also

Ich möchte nicht so etwas tun wie:

  1. lösche aus carsdescriptions wo idcar = @ idcar
  2. Einfügen in cardescriptions (, @ Header, @ Content, @ IDCar)

Der Datensatz muss aktualisiert werden, wenn er in der Tabelle vorhanden ist, und eingefügt werden, wenn er nicht in der Tabelle

vorhanden ist     
user278618 02.03.2010, 11:19
quelle

5 Antworten

12

Es hat die beste Leistung:

%Vor%     
user278618 02.03.2010, 11:38
quelle
7

In SqlServer 2008 gibt es an < stark> UPSERT Befehl , der genau dies tut. Ich habe es nicht versucht.

    
Stefan Steinegger 02.03.2010 11:56
quelle
5

wahrscheinlich etwas ähnliches mit einigen Änderungen würde funktionieren

%Vor%

Schauen Sie sich auch diesen Artikel an, er wird Ihnen mehr Einblick geben.

Asad Butt 02.03.2010 11:25
quelle
0

Sie sollten zuerst ein IF EXISTS ausführen, um zu sehen, ob der Datensatz in der Tabelle existiert. Ist dies nicht der Fall, INSERT das neue Auto, sonst aktualisieren Sie den vorhandenen Datensatz.

    
Neil Knight 02.03.2010 11:29
quelle
-1

Erstens: Ссылка

Zweitens: Ссылка

    
Lars Mæhlum 02.03.2010 11:28
quelle

Tags und Links