Announcement

Collapse
No announcement yet.

Anleger der Datenbank in Programm

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Anleger der Datenbank in Programm

    Hallo,

    ich möchte die Struktur der Datenbank aus meinem Programm anlegen. Hierzu habe ich über den SQL-Server mir ein Skript erstellen lassen für meine Datenbank. Ich habe jetzt aber das Problem das wenn ich das Skript in eine ADOCommand Objekt starte der Befehl "GO" nicht akzeptiert wird. Im Query Analyzer funktioniert es. Was kann ich ändern oder muss ich meine DB über die DMO Objekte manuell erstellen ?

    Vielen Dank für Infos

  • #2
    Hallo,

    die GO-Anweisung wird nur innerhalb des Query Analyzers ausgewertet, beim Abschicken aus dem eigenen Programm ist diese Abtrennung nicht notwendig. ADO unterstützt beim Zugriff auf den Microsoft SQL Server den Stapelbetrieb automatisch

    Comment


    • #3
      Hallo,

      das Problem ist, wenn ich darüber Trigger erzeuge müßte ich für jeden Trigger eine einzelne Anweisung erstellen da hier zwingend die "GO" Methode gebraucht wird bzw. eine Trennung. Was kann ich hier machen, auser jeden Aufruf einzeln abzuschicken?

      Danke

      Comment


      • #4
        Hallo,

        Microsoft sieht für derartige Aufgaben mehrere offizielle Wege vor: <br>
        1. Automation des SQL Servers über die <b>DMO</b>-Objekte <br>
        2. Ausführen eines SQL-Scripts über <b>osql.exe</b>

        P.S: Warum wird nicht gleich die Datenbank als Daten- und Log-Datei weitergeben und im Ziel-Server nur eingehängt

        Comment


        • #5
          Hallo,

          derzeit geben wir die SQL-Skripts weiter zum erstellen der Datenbank. Eigentlich wollte ich die Installation und sonstige weitere Parameter in einen Admin-Client einbinden.

          Wo findet man den eine Doku zu den DMO-Objekten vom SQL-Server

          Comment


          • #6
            Hallo,

            die Dokumentation von DMO ist in der Online-Hilfe (BOL) vom SQL Server 2000 integriert (siehe Index-Eintrag "Database object - SQL-DMO"). Auf der DVD der MSDN Library sind zusätzlich Unmengen von Unterlagen und Beispielen zu finden.

            P.S: Warum kommt das Aufteilen auf mehrere SQL-Anweisungen nicht in Frage. Der Query Analyzer macht das doch auch - die GO-Anweisung legt nur fest, welche Zeilen auf einmal zur Datenbank geschickt werden sollen. Der folgende Test demonstriert dies:
            <pre>
            USE tempdb

            CREATE TABLE Test (
            RecNo INTEGER NOT NULL IDENTITY PRIMARY KEY,
            Wert VARCHAR(10))
            GO

            INSERT INTO Test (Wert) VALUES ('A')
            INSERT INTO Test (Wert) VALUES ('B')
            INSERT INTO Test (Wert) VALUES ('C')
            GO
            SELECT * FROM Test
            GO
            </pre>
            Im <b>Profiler</b> ist gut sichtbar, dass der Query Analyzer jeden GO-Block als separate SQL-Anweisung zum Server schickt. Was spricht dagegen, dies im eigenen Programm auch so zu machen

            Comment


            • #7
              Die Aufteilung kommt schon in Frage ist aber weitaus mehr Aufwand ;

              Comment

              Working...
              X