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 …
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 …
Ich habe die folgende MERGEAnweisung, die gegen die Datenbank ausgegeben wird: MERGE "MySchema"."Point" AS t USING ( SELECT "ObjectId", "PointName", z."Id" AS "LocationId", i."Id" AS "Region" FROM @p1 AS d JOIN "MySchema"."Region" AS i ON i."Name" = d."Region" LEFT JOIN "MySchema"."Location" AS z ON z."Name" = d."Location" AND z."Region" = …
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 …
Wir begegnen oft der Situation "Wenn nicht vorhanden, einfügen". Dan Guzmans Blog bietet eine exzellente Untersuchung, wie man diesen Prozess threadsicher macht. Ich habe eine Basistabelle, die einfach eine Zeichenfolge zu einer Ganzzahl von a katalogisiert SEQUENCE. In einer gespeicherten Prozedur muss ich entweder den Integer-Schlüssel für den Wert abrufen, …
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. …
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 …
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 …
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 ... …
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 …
Angenommen, Sie haben so etwas: Quelltabelle (Variable): Values ( LeftId INT NOT NULL, RightId INT NOT NULL, CustomValue varchar(100) NULL ) Zieltabelle: Mapping ( LeftId INT NOT NULL, RightId INT NOT NULL, CustomValue varchar(100) NULL ) Ich mag verschmelzen Valuesin Targetden folgenden Regeln: Match on source.LeftId = target.LeftId AND source.RightId …
Meine Zusammenführungsreplikation hat heute Morgen einwandfrei funktioniert. Seit ein oder zwei Stunden wird in meinen Synchronisationsstatusfenstern immer wieder folgende Meldung angezeigt: Die Thread-ID 3108 wartet 15 Sekunden, bevor die Abfrage in Publisher 'MSI-SQL-MAS01' wiederholt wird. Kann mir jemand sagen, was los ist? Die Datenbank ist 500 GB groß und wird …
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
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.