INSERT IGNORE in MS SQL server 2005?

Gibt es mysqls INSERT IGNORE-Äquivalent in MS SQL server 2005 oder etwas ähnliches?

Sie können so etwas mit einem INSTEAD OF Trigger implementieren, indem Sie die Standardeinfügungsaktion abfangen, um Updates auszuführen, bei denen vorhandene Zeilen erkannt werden. Nicht ganz so out-of-the-box wie die MySql-Variante, aber flexibler.

Ich bin nicht vertraut mit der mysql INSERT IGNORE-function, aber die Dokumentation, die ich lese, macht es so klingen wie alles, was es tut, ignoriert (schweigend fehlgeschlagen) versucht, einen datasatz mit einem Primärschlüssel einzufügen, der bereits in der Tabelle existiert.

Wenn das ist, was Sie suchen, SQL server hat eine ähnliche functionalität, aber Sie müssen es auf den Primärschlüssel oder eine einzigartige Einschränkung anwenden, wenn Sie es erstellen.

Lesen Sie die IGNORE_DUP_KEY-Option eines eindeutigen Index.

Ich würde sagen, Sie haben zwei praktikable Optionen:

Man soll die falschen Werte herausfiltern, bevor du versuchst. Vielleicht füge eine where-Klausel hinzu:

WHERE newValues NOT IN (SELECT pk_col FROM yourTable) 

ODER Sie können try-catch verwenden, denn wenn Sie mit Fehlern arbeiten, normalerweise etwas mit try-catch ist Ihr bester Freund. Probieren Sie es aus:

 BEGIN TRY INSERT INTO yourTable(pk_col,other_date) SELECT 'PK Value That Already Exists','saflaksdfj' END TRY BEGIN CATCH --You can choose to do anything in response to an error like nothing! END CATCH 

Ich weiß nicht, was deine Anwendung ist – vielleicht könnte der REPLACE helfen ?!