Tossi65 1 Geschrieben 29. Dezember 2022 Melden Teilen Geschrieben 29. Dezember 2022 Guten Tag Kollegen, ich habe da eine wichtige Frage: wenn ich SqlBulkCopy wie folgt verwende: using (var bulkCopy = new SqlBulkCopy(ACon, SqlBulkCopyOptions.KeepIdentity, ATransaction)) Wird dann die KeepIdentity Option für die Tabelle bei Fehler automatisch wieder entfernt? Scheint mir nicht so. Wie kann ich diese Option wieder rückgängig machen? Und einen Guten Rutsch ins neue Jahr ;) Gruß Torsten Zitieren Link zu diesem Kommentar
NilsK 2.932 Geschrieben 2. Januar 2023 Melden Teilen Geschrieben 2. Januar 2023 Moin, ich verstehe die Frage nicht ganz. KeepIdentity sorgt doch, wenn ich es richtig verstehe, dafür, dass beim Bulk-Load die Identity-Spalte der Tabelle von der Quelle übernommen wird. Damit ist das dann eine Eigenschaft der Zieltabelle. Die verschwindet dann natürlich nicht von selbst. Eine Identity-Spalte nachträglich zu ändern, ist nicht ganz einfach, geht aber. Die Frage wäre aber, warum man das tut. Das berührt dann das Datenmodell und sollte gut durchdacht sein. Wäre es evtl. möglich, das Bulk-Copy ohne die Option auszuführen? Gruß, Nils Zitieren Link zu diesem Kommentar
Tossi65 1 Geschrieben 2. Januar 2023 Autor Melden Teilen Geschrieben 2. Januar 2023 Hallo NilsK, ich benutze KeepIdentity, um die Werte zu erhalten, da wir die Daten replizieren wollen. So wie ich das verstehe wird dabei die Befehlszeile "SET IDENTITY_INSERT Tabelle ON". Wenn jetzt ein Fehler bei WriteServer() auftritt, wird dann der Befehl wieder mit "SET IDENTITY_INSERT Tabelle OFF" aufgehoben??? Das ist meine Frage. Gruß Torsten Zitieren Link zu diesem Kommentar
NilsK 2.932 Geschrieben 2. Januar 2023 Melden Teilen Geschrieben 2. Januar 2023 (bearbeitet) Moin, jetzt verwirrst du mich endgültig. Vielleicht solltest du noch mal einen Schritt zurücktreten und klären, was du genau vorhast. Da scheinen mir Dinge durcheinander zu gehen. Wenn es nur darum geht, die Werte aus der Quelltabelle beizubehalten, muss die Zieltabelle ja keine Identity-Eigenschaft haben, dann ist das eben eine einfache Wertespalte. Oder übersehe ich da was? Im Detail werde ich dir allerdings auch nicht weiterhelfen können, weil ich kein Developer bin. Gruß, Nils bearbeitet 2. Januar 2023 von NilsK 1 Zitieren Link zu diesem Kommentar
Tossi65 1 Geschrieben 2. Januar 2023 Autor Melden Teilen Geschrieben 2. Januar 2023 Hallo NilsK, Hintergrund ist, das wir mehrere gleiche Datenbanken haben, die aus einer Zentraldatenbank mit Daten versorgt wird. Früher mit der Replikation(Transaktional) und jetzt wird das alles über SSIS Services gemacht. Die alte Replikation ging nicht mehr, weil Fehler in der Datenbankstruktur gemacht wurden. Die Urheber der Replikation sind auch nicht mehr verfügbar. Vielleicht liest das hier ja auch jemand aus dem Developer Team. Danke. Gruß Torsten Zitieren Link zu diesem Kommentar
NilsK 2.932 Geschrieben 2. Januar 2023 Melden Teilen Geschrieben 2. Januar 2023 Moin, In dem Fall dürfte sich IDENTITY doch ohnehin verbieten ... wie sollen verteilte Datenbanken für eine Eindeutigkeit sorgen? Nach meiner Erfahrung werdet ihr sowas kaum befriedigend lösen können, ohne es von Grund auf anzugehen. Gruß, Nils Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 2. Januar 2023 Melden Teilen Geschrieben 2. Januar 2023 vor 3 Stunden schrieb Tossi65: Vielleicht liest das hier ja auch jemand aus dem Developer Team. Danke. Welches Developer Team? Von MSFT ein SQL Server Developer Team liest hier bestimmt nicht mit. Du kannst es natürlich im auf Entwickler Forum von Microsoft probieren: https://social.msdn.microsoft.com/Forums/de-DE/home?forum=sqlserverde Zitieren Link zu diesem Kommentar
Lian 2.421 Geschrieben 4. Januar 2023 Melden Teilen Geschrieben 4. Januar 2023 Am 2.1.2023 um 16:16 schrieb Sunny61: Welches Developer Team? Von MSFT ein SQL Server Developer Team liest hier bestimmt nicht mit. Mitgelesen wird hier sogar rege Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 4. Januar 2023 Melden Teilen Geschrieben 4. Januar 2023 vor 2 Minuten schrieb Lian: Mitgelesen wird hier sogar rege Echt? Die SQL Server Jungs aus Redmond lesen hier mit? Dann will ich nichts geschrieben haben. ;) Zitieren Link zu diesem Kommentar
Lian 2.421 Geschrieben 4. Januar 2023 Melden Teilen Geschrieben 4. Januar 2023 Einer der SQL Server Entwickler für Linux aus Redmond spricht deutsch und liest mit. ;) Ansonsten kenne ich mindestens ein dutzend MA, die mitlesen. Woher die Gäste sind, sieht man auch aus den anonymen Besucherlogs. Aktiv sind hier schon länger wenige, ungefähr seitdem mehrere von den ehemaligen NGs zu uns gestoßen sind. Zugegebenermaßen hängt das aber eher mit der Einführung der MS Foren zusammen... 2 Zitieren Link zu diesem Kommentar
t-sql 18 Geschrieben 7. Januar 2023 Melden Teilen Geschrieben 7. Januar 2023 Am 2.1.2023 um 12:41 schrieb Tossi65: Hallo NilsK, Hintergrund ist, das wir mehrere gleiche Datenbanken haben, die aus einer Zentraldatenbank mit Daten versorgt wird. Früher mit der Replikation(Transaktional) und jetzt wird das alles über SSIS Services gemacht. Die alte Replikation ging nicht mehr, weil Fehler in der Datenbankstruktur gemacht wurden. Die Urheber der Replikation sind auch nicht mehr verfügbar. Vielleicht liest das hier ja auch jemand aus dem Developer Team. Danke. Gruß Torsten Ihr nehmt SSIS. Also isses net zeitkritisch. Ich würd da mit Logshipping anfangen. BTW. der SQL Server Replikation is die Datenbankstruktur völlig wurscht. Zitieren Link zu diesem Kommentar
NilsK 2.932 Geschrieben 7. Januar 2023 Melden Teilen Geschrieben 7. Januar 2023 vor 4 Stunden schrieb t-sql: Ihr nehmt SSIS. Also isses net zeitkritisch. Ich würd da mit Logshipping anfangen. BTW. der SQL Server Replikation is die Datenbankstruktur völlig wurscht. Das ist so nicht korrekt. Das hängt vom Typ der Replikation ab. Und ob Log Shipping passt, hängt doch sehr von den Anforderungen ab. Nach dem, was bislang dazu bekannt ist, passt es ziemlich sicher nicht. Gruß, Nils Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.