none
Script: SQL Tabelle -> Spalte über Netzwerk ändern RRS feed

  • Frage

  • Hallo zusammen,

    ich habe mehrere Standorte auf denen der MS SQL Server 2008R2 oder der normale MS SQL Server 2000 installiert ist.

    Die Standorte sind per VPN mit der Zentrale verbunden.

    Die Datenbanken existieren nur Lokal.

    Mir ist der Befehl zur Änderung einer SQL-Tabelle bekannt, aber wie kann ich das seitens Zentrale für alle Standorte übernehmen? Sozusagen das er den Befehl auf Standort X ausführen soll, sodass SQL-Tabelle X in Spalte Y nun den Wert 0 anstatt 1 hat. Dann soll er fortfahren zu Standort Z und das gleiche tun.

    Ich hoffe ich habe genügend Informationen gegeben und ihr könnt mir ein paar Lösungsansätze geben.

    Mit freundlichen Grüßen,

    Olaf

    Mittwoch, 20. Mai 2015 14:23

Antworten

Alle Antworten

  • Hallo Olaf,

    wenn das eigenständige und nicht miteinander verbundene Datenbankserver sind: Nein. Dann musst Du das für jede Instanz selbst machen.

    Falls Du einen Server hast, der als "Zentrale" fungiert und von dem aus Du eine Verbindung zu den anderen SQL Servern aufbauen kannst, wäre es möglich, das Statement hierüber abzusetzen (dennoch musst Du jede Instanz einzeln ansprechen). Ob und wie das geht, hängt aber von verschiedenen Faktoren ab.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Mittwoch, 20. Mai 2015 14:55
    Moderator
  • Guten Morgen Stefan,

    vielen Dank für deine Antwort.

    Nein, sie sind nicht miteinander verbunden und jede Datenbank ist selbstständig. Eine zentralen Server, um diese anzusprechen, existiert ebenfalls nicht.

    Könnte man nicht über das Netzwerk einfach das auszuführende Script lokal auf die Festplatte von jedem Standort legen und dann mit einem einfachen Batch-Befehl dieses Script ausführen? Die Tabelle existiert ja auf jedem Standort.

    Hier weiß ich allerdings nicht, wie ich mit einem Script z.B. die Datenbank "ansprechen" kann, damit sie die gewöhnliche SQL-Abfrage machen kann.

    Mit freundlichen Grüßen,

    Olaf

    Donnerstag, 21. Mai 2015 06:01
  • Hallo Olaf,

    wenn alle Server bei Dir lokal in SSMS als registrierter Server mit Anmeldeinformation hinterlegt sind und auf allen SQL Servern die Datenbank + betroffenen Tabellen gleich heißen, dann kannst von lokal aus eine sogenannte "MultiServer-Abfrage" ausführen, siehe: Execute Statements Against Multiple Servers Simultaneously (SQL Server Management Studio) 


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Donnerstag, 21. Mai 2015 06:52
  • Das Konzept, inwiefern die Datenbanken mteinander zu tun haben, ist mir nicht ganz klar. Möglicherweise ist die Architktur nicht dafür geeignet, aber ich würde mir an Deiner Stelle einmal die Replikation ansehen. Davon gibt es verschiedene Formen.

    Im Zusammenspiel mit SQL Server 2000 dürfte das allerdings noch schwieriger werden. Ein Upgrade kann man nur dringend empfehlen nach all den Jahren, die diese Version schon nicht mehr supported wird.

    Unter SQL Server 2008> sind der Service Broker oder auch Integration Services-Pakete mögliche Alternativen. Für extrem simple Szenarien kann man sicher auch mit Linked Server Abfragen arbeiten.


    Andreas Wolter (Blog | Twitter)
    MCSM: Microsoft Certified Solutions Master Data Platform, MCM, MVP
    www.SarpedonQualityLab.com | www.SQL-Server-Master-Class.com

    Donnerstag, 21. Mai 2015 06:57
  • Guten Tag Olaf,

    vielen Dank für den hilfreichen Tipp.

    Ich habe mir die Aufgabe gemacht die Server alle bei uns hinzuzufügen, sodass ich eine MultiServer-Abfrage starten konnte.

    In Zukunft hätte ich sie sicherlich sowieso hinzufügen müssen.

    Natürlich bedanke mich auch bei den anderen für ihre Hilfe.

    Mit freundlichen Grüßen,

    Olaf

    Dienstag, 26. Mai 2015 12:58