Jump to content

Tossi65

Members
  • Gesamte Inhalte

    68
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von Tossi65

  1. 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
  2. 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
  3. Hallo NilsK, nein nicht ganz. Die Version könnte ich auch per Eigenschaften -> Optionen hoch setzen. Soviel ich weiß, müssen wohl auch Änderungen an der Datenbankstruktur gemacht Werden. Z. B. Funktionalitäten müssen geprüft werden, da nicht mehr unterstützt oder überarbeitet. Ich habe mal den Migration Assistenten drüber laufen lassen, der meckert alle Joins, Trigger usw an. Aber bietet leider keine Beispiele an. Wie gesagt da liegen Generationen zwischen den Versionen. Der neue Server bietet nicht mehr den Kompatibilitätsmodus 80 an. Er setzt diesen gleich auf 100 ohne Prüfung ob die DB dann noch richtig arbeitet. Gruß Torsten
  4. Guten Morgen Kollegen, wir müssen unsere MS Sql Server auf den neuesten Stand bringen. Das ist ja kein Problem. Das wurde seit MS 2005 auch brav gemacht. Neue Server-Version installiert und Datenbank reinkopiert. Das war es. So die Datenbank haben die Struktur-Version 80, Server 2005 und wir brauchen die neueste Version 150. Ich komme aus der FireBird Fraktion, da geht das ganz einfach. Backup auf dem alten und Restore auf dem neuen Server. Das war es. Aber Microsoft kann nicht einfach. Hat jemand eine Anleitung oder Tipps wie man es am einfachsten macht? Gruß Torsten
  5. Hallo Kollegen, ich habe eine neue Frage zu dem Thema. Ich benutze ein ForEach Loop über ein Dataset und will die Daten mit einem LookUp in das Ziel schreiben, wenn diese dort nicht vorhanden sind. Das habe ich auch schon hinbekommen. Aber jetzt soll das Feld ID mit einem Offset addiert werden. Das Offset kommt aus der Datenbank und steht in der Variable lOffset. Beim Mappen der Spalten werden nur Spalten zugelassen. 1. Wie berechne ich die neue ID bei jedem Durchlauf vom Loop? Der Loop hat ja leider keine eigenen Variablen und Ereignisse. 2. Wie mache ich die Zuweisung zur Zielspalte. Danke Torsten
  6. Tossi65

    SSIS SQL Task

    Hallo Leute, ich versuche mich gerade in SSIS einzuarbeiten. Vielleicht habe ich mir zu viel zu getraut. Ich habe mir eine Konfig-Tabelle erstellt in der Quelldatenbank erstellt. Diese kann ich auch auslesen und Variablen zu weisen. Es gibt eine globale Variabel "Limit". Diese möchte ich in einem dynamischen SQL Statement für den SQL Task verwenden. "select top ? from Tabelle where spalte1 = ? and spalte2 = ?" Die Fragezeichen für spalte1 und spalte2 werden ersetzt aber das erste Fragezeichen nach Top nicht. Mit dem @ geht es auch nicht. Gibt es dafür eine Möglichkeit. Hier sollte der Wert aus Limit stehen. Danke Torsten
  7. Hallo NilsK, ich bin da ganz bei dir, aber wie du sicherlich gelesen hast, ist die Replikation schon etwas älter. Ich glaube 2012 war der Begin und der ehem. Kollege wusste auch nicht so recht mit Datenbanken und Struktur bescheid. Vielleicht auch aus der Historie heraus. Zusätzlich sind nicht alle globale Verbindungen so gut, das man eine Datenbank lokal verwenden kann, wenn es auf Taktzeiten ankommt. Auch heute stören uns noch Latenzen zu den einzelnen Standorten. Da macht eine Replikation die Sache schon entspannter. Wenn richtig konzipiert. Hier werden von den Satelliten die Daten in die jeweiligen Tabellen auf dem Zielserver geschrieben. D. h. 6 Satelliten Tabelle A auf Zielserver in eine Tabelle A. Und kein eindeutiger Inde nur einen zusammengesetzten aus einer Nummer und einer TestSystemID. Die Nummer läuft von 0 bin nnnnnn und die TestSystemID von 1 bis 6. Beides sind eigenständige Spalten. Ich habe gelernt das die Spalte eindeutig sein muss und nicht ein Index. Aber ????? Deshalb mein Vorschlag auf das oben genannte Vorgehen. Das würde uns die Sache vereinfachen. Gruß Torsten
  8. Hallo Kollegen, ich habe da eine nicht alltägliche Frage. Hintergrund: In meiner Firma werden seit über 10 Jahren Daten auf verschiedene Server(Satelliten) repliziert. Das geht auch ganz gut. Aber es werden auch Daten von den Satelliten wieder zurück repliziert in eine Datenbak und verschieden Tabellen. Das ist der böse Punkt. Bei der Datenbankstruktur sind nach heutigen Erkenntnissen markante Fehler gemacht worden. Tabellen haben keine eindeutige Indexspalte. Dies gilt auch für die Zieltabellen für die Replikation zurück. Ausserdem wurde es versäumt Nummernkreise für die einzelnen Satelliten für diese Zieltabellen anzulegen. Ich weiß nicht wie das mal funktioniert hat, aber jetzt geht es nicht mehr. Und wir bekommen es auch nicht ans Laufen. "Dopplete ID ...." Ein reparieren der Fehler ist nicht so einfach, da die Datenbank ca 250 GB groß ist und ca 25 Applikationen darauf zugreifen. Die Replikation umfasst 6 Satelliten. Meine Idee wäre es einen Service zu erstellen, der nach Speicherung der Daten in der Datenbank auf den Satelliten angetriggert wird und die Daten an die Zieldatenbank überträgt und vorher die ID's usw. anpasst Ich kenne das von den FireBird Datenbanken, Da gibt es ein Eventalerter, der Anwendungen ansteuern (benachrichtigen) kann. Aber gibt es so etwas auch für den SQL Server?? Oder habe ich dafür andere Möglichkeiten?? Werkzeug: SQL Server 2012 und Visual Studio 2022. SQL Server wird demnächst migriert auf den aktuellen. Für Vorschläge wäre ich dankbar. Gruß Torsten
  9. Hallo NilsK, da bin ich ganz bei dir. Aber wenn die Verbindungen nach USA oder noch schlimmer China so mies sind, ist es besser Daten vor Ort vor Produktionsbeginn zu haben. Gruß Torsten
  10. @Sunny61 Das ist uns bekannt und wir müssen die SQL Server erneuern. Ist in Vorbereitung. Aber der Crash kam schneller. Ausgelöst durch ein MS Server Update. Gruß Torsten
  11. Guten Morgen, @Dukel: Microsoft SQL Server 2012 (SP2-GDR) (KB3194719) - 11.0.5388.0 (X64) Sep 23 2016 16:56:29 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.3 <X64> (Build 9600: ) (Hypervisor) Die Replikation ist transactional und mit subscriber push. Die anderen Datenbankserver sind genauso ausgestattet. @Sunny: Ja ich gebe dir recht. Der Kollege, der das vorher gemacht hat, ist leider verstorben und hat kaum Doku hinterlassen. Ich kenne die Replikation nur von MySQL und die ähnelt MS kaum. Einen Berater wollen wir auch zu ziehen, aber meist kommt erst der Crach. Und die Datenbank um die es sich handelt ist eine ProduktionsDB. Deshalb der Druck. Gruß Torsten
  12. Hallo Leute, mein Vorgänger hat einige Datenbanken repliziert. Ich kennen mich mit der Replikation von MS nicht aus, nur mit MySQL. Hat jemand dazu eine vernünftige deutsche Dokumentation? Irgendwie scheint dieses Thema nur beiläufig erwähnt zu werden. Wir haben nach einem DC Crash mega Stress mit der Replikation. Wir bekommen Sie einfach nicht zum Laufen. Im Gegenteil, sie hat auf unserer deutschen Seite Daten gelöschte, welche nicht gelöscht werden sollten. Nun müssen wir einen Weg finden das wieder rückgängig zu machen. Zum Glück haben wir noch einen Datenbestand von vorm crash. Aber wir wollen, das das nicht noch einmal passiert. Warum werden Tabellen gelöscht wen die Daten repliziert werden??? Haben wir einen falschen Haken gesetzt? Danke Torsten Was würde eigentlich passieren, wenn ich ein älteres Backup der Zieldatenbank wiederherstelle?. Startet die Replikation dann automatisch wieder von vorn ohne die Daten in den Zieltabellen zu löschen???
  13. Tossi65

    Datenbank Wartung?

    Der Kollege weilt leider nicht mehr unter uns. Ich habe die Anwendung als auch die Datenbanken mit kaum Doku geerbt. Aber ich wurschtel mich schon durch mit eurer Hilfe
  14. Tossi65

    Datenbank Wartung?

    Danke für die Informationen. Ich werde mir diese in den nächsten Tagen genau anschauen. Vielen Dank Noch eine Frage: Wenn ich die Datenbank mit BackUp / Restore bearbeite, werden dann die Indizes defragmentiert? Und etwaige Fehler auch behoben???
  15. Tossi65

    Datenbank Wartung?

    Hey, das kann ich nicht sagen. Wie kann ich das kontrollieren? Das Management Studio habe ich auf allen Servern zur Verfügung. Ich kenne mich mit den Tools zu MS SQL nicht so aus. Danke
  16. Tossi65

    Datenbank Wartung?

    Guten Morgen, ich habe eine Frage zu einer MS SQL Datenbank. Ich persönlich komme aus dem Interbase / Firebird Umfeld. Unsere Datenbanken sind alle MS Sql basierend. Sie werden schon über Jahre betrieben. Sie sind indiziert, zwar mit Indezes aus mehreren Feldern davon halte ich gar nichts, aber sie haben Indezes. Unsere Kollegen beschweren sich aber immer mehr, dass Wartezeiten auf Daten aus der Datenbank teilweise lange dauert. Ich kann keine Fehler in der Datenbank entdecken. Im "Activity Monitor" sehe ich aber SQL Statements, meistens Updates bzw. Inserts, die bis zu 4 Sekunden dauern. Eine Firebird Datenbank würde man bei diesen Symptomen mit einen BackUp / Restore wieder reorganisieren, wegen den internen Transaktionsketten. Geht dies auch mit SQL Datenbanken? Welche Möglichkeiten habe ich hier? Ich muss mich auf MS SQL Datenbanken einarbeiten. Danke für Eure Hilfe. Torsten
  17. Danke, jetzt wird es klarer. Schönes Wochenende
  18. Guten Morgen, ich arbeite mich tiefer in TSQL ein und betreue eine MS SQL Datenbank. Darin befindet sich eine gespeicherte Prozedur, die ich nicht ganz verstehe. Dabei brauche ich eure Unterstützung. ALTER PROCEDURE [dbo].[usp_PTrackDocumentsGetPending] as ;with existing_docs(doc_type, doc_num, doc_ver) as ( select doc_type, doc_num, doc_ver from ORD_Documents ) select pt_ord_num = substring(ord_num, 5, 12) , mat_num = substring(z.mat_num,11,18) , Z.doc_type, Z.doc_num, Z.doc_ver--, z.docnum , upload = (case when ed.doc_num is null then 1 else 0 end) FROM ORD_Order_Header AS H join XFR_Z1docum AS Z on z.docnum = h.docnum and z.hasDocument = 1 left outer join existing_docs ed on ed.doc_type = z.doc_type and ed.doc_num = z.doc_num and ed.doc_ver = z.doc_ver where h.crt_dt >= getdate()-7 order by pt_ord_num desc --and ed.doc_num is null Was bewirkt die ";with " Anweisung? Im meinem SQL Server Buch steht natürlich darüber nichts. Danke für Eure Unterstützung.
  19. Vielen Dank, ich habe es gefunden.
  20. Da ich folgende Abfrage verwende: select TOP 100 * from protokoll where Format(datum,'dd.MM.yyyy') = '10.06.2021' order by datum erhalte ich natürlich nicht das richtige Ergebnis.
  21. Und wie kann ich das vermeiden???
  22. Hallo Kollegen, ich verliere gleich den Verstand. Ich habe eine Tabelle erstellt mit einer DateTimspalte. Aus dem Programm füge ich per Insert ein Datum ein cmd.Parameters.AddWithValue("@datum", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss")); In der Tabelle steht dann: WArum sind Mnnat und Tag vertauscht??? Bei dem SQL Statement ist alles richtig "2021-06-10 ..." Mfg Torsten
  23. Guten Morgen, Ich möchte unserem Supporter und dem KeyUser an der Linie HIlfsmittel an die Hand geben, um das Problem schnellst möglich zu beheben. Dazu gehört auch eine Abbildung der Situation auf dem SQL Server. Diese Leute haben nicht die Berechtigung für die Server. Die Supporter kommen teilweise nicht mal aus unserer Firma. Wenn sie den Fehler nicht beheben können sollen sie den nächsten Level des Supports anrufen. Gruß Tossi
  24. Guten Morgen, meine Frage lautet: geht das überhaupt mit den MS MMO's? Ich habe noch nicht mit diesen Package gearbeitet. Gibt es da Erfahrungen? Mfg Tossi
  25. Nein. DIe Linie besteht aus einem MasterPC und mehreren Clients. Alle PC's haben eine Datenbankverbindung. All das kann ich auch im Monitor vom dem SQL Management Studio sehen, aber eben auch alles andere. Ich möchte diesen Monitor mit den MMO nachbauen, wenn es geht und nur auf diese Datenbank für die Linie beschränken. HIntergrund: Es kommt hin und wieder vor, das eine SQL Abfrage, welche alltäglich läuft, einfach hängen bleibt. Das Herunterfahren aller Linien PC's für den Neustart hilft nichts. Es muss dann eben der SQL Prozess für diese Abfrage gekillt werden. Warum diese Abfrage auf einmal hängen bleibt haben wir noch nicht herausgefunden. Gruß Torsten
×
×
  • Neu erstellen...