Trigger um zu verhindern, dass die Insertion für doppelte Daten von zwei Spalten
Arbeite ich an SQL Server 2008R2
ich bin mit der folgenden Tabelle
ID Name date
1 XYZ 2010
2 ABC 2011
3 VBL 2010
Nun möchte ich verhindern, einfügen, wenn ich eine Daten, obwohl die ID ist anders, aber Daten vorhanden
ID Name date
4 ABC 2011
Freundlicherweise guide mir, wie soll ich schreiben, die diese auslösen.
- Brauchen Sie wirklich einen Auslöser? Haben Sie versucht, die eindeutigen index oder Zwang?
- und wie, wenn mein primary key ist ID??
- ERSTELLEN Sie einen EINDEUTIGEN nicht GRUPPIERTEN INDEX XXTable_Unq AUF xxTable (name ASC,[Datum] ASC)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Etwas wie dieses:
Ist das nur für das einfügen, möchten Sie vielleicht zu prüfen, updates auch.
Update
Ein einfacher Weg wäre, um einfach erstellen Sie eine unique-Einschränkung für die Tabelle, diese wird auch durchgesetzt werden, für updates und entfernen Sie die Notwendigkeit für einen trigger. Nur:
und dann werden Sie in der Wirtschaft.
inserted
passender selbst in die Ziel-Tabelle.Wenn Sie eine gespeicherte Prozedur zum einfügen von Daten in die Tabelle, die Sie nicht wirklich brauchen einen Auslöser. Überprüfen Sie zuerst, ob die Verbindung existiert, dann nicht einfügen.
Den unten auslösen können, wenn Sie nicht zum einfügen von Daten über die store-Prozedur.
Brauchst du nicht unbedingt einen Auslöser für diese. Nur setup eine unique-Einschränkung für mehrere Spalten.
Versuchen, diese