Als «merge» getaggte Fragen

Eine SQL-Anweisung, die Zielzeilen bedingt einfügen, aktualisieren oder löschen kann.

1
MERGE eine Teilmenge der Zieltabelle
Ich versuche, mit einer MERGEAnweisung Zeilen aus einer Tabelle einzufügen oder zu löschen, möchte jedoch nur auf eine Teilmenge dieser Zeilen reagieren. Die Dokumentation für MERGEhat eine ziemlich starke Warnung: Es ist wichtig, nur die Spalten aus der Zieltabelle anzugeben, die für Abgleichszwecke verwendet werden. Geben Sie also Spalten aus …

2
Wie füge ich eine einzelne Abfrage ein oder aktualisiere sie?
Ich habe einen Tabellentest mit Spalten-ID, die den Primärschlüssel und automatisch erhöht und benennt. Ich möchte nur dann einen neuen Datensatz einfügen, wenn keine Datensätze vorhanden sind. Zum Beispiel Eingabe ist id = 30122 und name = john Wenn es Datensätze mit der ID 30122 gibt, habe ich die Namensspalte …


4
Merge-Anweisung blockiert sich selbst
Ich habe das folgende Verfahren (SQL Server 2008 R2): create procedure usp_SaveCompanyUserData @companyId bigint, @userId bigint, @dataTable tt_CoUserdata readonly as begin set nocount, xact_abort on; merge CompanyUser with (holdlock) as r using ( select @companyId as CompanyId, @userId as UserId, MyKey, MyValue from @dataTable) as newData on r.CompanyId = newData.CompanyId …


1
Was sind meine Sperroptionen für eine Merge-Anweisung?
Ich habe eine gespeicherte Prozedur, die eine MERGEAnweisung ausführt . Es scheint, als würde beim Durchführen der Zusammenführung standardmäßig die gesamte Tabelle gesperrt. Ich rufe diese gespeicherte Prozedur innerhalb einer Transaktion auf, in der ich auch einige andere Dinge mache, und ich wünschte, sie würde nur die betroffenen Zeilen sperren. …

1
Verhinderung von MERGE-Deadlocks
In einer unserer Datenbanken haben wir eine Tabelle, auf die mehrere Threads gleichzeitig intensiv zugreifen. Threads aktualisieren oder fügen Zeilen über ein MERGE. Es gibt auch Threads, die gelegentlich Zeilen löschen, sodass Tabellendaten sehr flüchtig sind. Threads, die Upsts machen, leiden manchmal unter Deadlocking. Das Problem ähnelt dem in dieser …

1
Wird die Verwendung mehrerer eindeutiger Einschränkungen für eine einzelne Tabelle als schlechtes Design angesehen?
Ich habe mir die INSERT INTO .. ON CONFLICT (..) DO UPDATE ..Syntax von PostgreSQL angesehen und festgestellt, dass Sie damit nicht mehrere eindeutige Einschränkungsprüfungen durchführen können. Ich meine, Sie verweisen entweder mit den Spaltennamen auf einen zusammengesetzten eindeutigen Index ON CONFLICT (Name, Symbol)(wenn der eindeutige Index für diese beiden …

1
Überlauf der Zeilengröße in SQL Server zusammenführen - "Es kann keine Zeilengröße erstellt werden."
Die Zieltabelle, in die ich die Daten zusammenführen möchte, enthält ~ 660 Spalten. Der Code für die Zusammenführung: MERGE TBL_BM_HSD_SUBJECT_AN_1 AS targetTable USING ( SELECT * FROM TBL_BM_HSD_SUBJECT_AN_1_STAGING WHERE [ibi_bulk_id] in (20150520141627106) and id in(101659113) ) AS sourceTable ON (...) WHEN MATCHED AND ((targetTable.[sampletime] <= sourceTable.[sampletime])) THEN UPDATE SET ... …

1
MERGE mit OUTPUT scheint nicht das Richtige zu tun
Ich füge einer Tabelle einen Fremdschlüssel hinzu, entferne alle Zeilen, die gegen die FK verstoßen, und kopiere sie in eine ModifiedTable_invalid-Tabelle. Als Teil des Skripts habe ich den folgenden MERGE-Befehl: MERGE ModifiedTable t1 USING TargetTable tt ON t1.JoinColumn = tt.JoinColumn WHEN MATCHED THEN UPDATE SET t1.FkColumn = tt.FkSource WHEN NOT …



2
Oracle's Merge v. Wählen Sie-> Aktualisieren / Einfügen
Was ist die schnellere Aussage? Ein MERGE oder Select-> Update / Insert, je nachdem, ob ein Wert zurückgegeben wird? Ich versuche, eine Datenbank zu optimieren, habe jedoch keine Geschwindigkeitstests zum Vergleich der beiden gefunden. Ich habe den Befehl MERGE über eine StackOverflow-Antwort gefunden
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.