Announcement

Collapse
No announcement yet.

SCQ-Script mit Inhalten der Datenbank erstellen

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

  • SCQ-Script mit Inhalten der Datenbank erstellen

    Wie kann ich ein SQL-Script mit den jetzigen Inhalten der DAtenbank erstellen? Verwendet wird ein SQL-Server 7. Das Script soll später als SQL-Statement ausgeführt werden (ADO.NET + C#). Geht das überhaupt?

    Andreas Gräfe

  • #2
    Hallo,

    ja. Am einfachsten geht das in <i>Microsoft Visual Studio .NET</i>: <br>
    1. Neues Datenbankprojekt für diese Datenbank anlegen <br>
    2. Server Explorer: Datenbank auswählen | rechter Mausklick | <b>Generator Create Script </b><br>
    3. Server Explorer: Datenbank auswählen | rechter Mausklick | <b>Export Data...</b> <br>
    4. Solution Explorer: Datenbankprojekt auswählen | rechter Mausklick | <b>Create Command File</b> <br>
    Ergebnis: Man hat eine Script-Datei sowie eine Handvoll von Datendateien, um die Datenbank auf einem anderen Rechner aufbauen zu können. Die automatisch generierte so genannte Command-Scriptdatei sieht dabei zum Beispiel folgendermaßen aus:
    <pre>
    @echo off
    REM: Command File Created by Microsoft Visual Database Tools
    REM: Date Generated: 09.10.2002
    REM: Authentication type: Windows NT
    REM: Usage: CommandFilename [Server] [Database]

    if '%1' == '' goto usage
    if '%2' == '' goto usage

    if '%1' == '/?' goto usage
    if '%1' == '-?' goto usage
    if '%1' == '?' goto usage
    if '%1' == '/help' goto usage

    osql -S %1 -d %2 -E -b -i "Create Scripts\dbo.TblNew.tab"
    if %ERRORLEVEL% NEQ 0 goto errors
    bcp "%2.dbo.TblNew" in "Create Scripts\dbo.TblNew.dat" -S %1 -T -k -n -q
    if %ERRORLEVEL% NEQ 0 goto errors
    osql -S %1 -d %2 -E -b -i "Create Scripts\dbo.TblNew.kci"
    if %ERRORLEVEL% NEQ 0 goto errors
    osql -S %1 -d %2 -E -b -i "Create Scripts\dbo.TblNew.fky"
    if %ERRORLEVEL% NEQ 0 goto errors
    osql -S %1 -d %2 -E -b -i "Create Scripts\dbo.TblNew.ext"
    if %ERRORLEVEL% NEQ 0 goto errors

    goto finish

    REM: How to use screen
    :usage
    echo.
    echo Usage: MyScript Server Database
    echo Server: the name of the target SQL Server
    echo Database: the name of the target database
    echo.
    echo Example: MyScript.cmd MainServer MainDatabase
    echo.
    echo.
    goto done

    REM: error handler
    :errors
    echo.
    echo WARNING! Error(s) were detected!
    echo --------------------------------
    echo Please evaluate the situation and, if needed,
    echo restart this command file. You may need to
    echo supply command parameters when executing
    echo this command file.
    echo.
    pause
    goto done

    REM: finished execution
    :finish
    echo.
    echo Script execution is complete!
    :done
    @echo on
    </pre>
    Wenn Visual Studio .NET nicht zur Verfügung steht, muss man die einzelnen Schritte von Hand über den <i>Enterprise Manager</i> des SQL Servers bzw. über bcp abarbeiten.

    Alternativ dazu kann das eigene Programm über den Zugriff auf die COM-Objekte von <i>SQLDMO</i> (Distributed Management Object) auch den SQL Server auf dem Automation-Weg fernbedienen, um dort alle benötigten Sachen neu anzulegen.

    Comment


    • #3
      Ich benutze zwar die IDE, aber der Server ist woanders installiert. Deshalb stehen mir die Clienttools nicht zur Verfügung. Was muss ich machen, um eine solche Datei mit dem Enterprise-Manager zu erstellen?
      <br>--------------<br>
      Eine normale SQL-Datei wäre noch besser. Ich lese die Datei nämlich über ein Setup-Tool ein und verarbeite sie mittels Commandobjekt

      Comment


      • #4
        Hallo,

        was bedeutet "Ich benutze zwar die IDE,..?". Wenn VS.NET zur Verfügung steht, kann man dort im <i>Server Explorer</i> doch eine Verbindung zu jedem im Netzwerk verfügbaren SQL Server herstellen.

        Im Enterprise Manager des MS SQL Server 7/2000 sind folgende Schritte notwendig: <br>
        1. Datenbank auswählen <br>
        2. Rechter Mausklick | Alle Tasks | <B>SQL-Script generieren...</b>
        3. Button <b>Alle Anzeigen</b> anklicken <br>
        4. Checkbox <b>Scripterstellung für alle Objekte</b> ankreuzen <br>
        5. Registerseite <b>Optionen</b>: Je nach Wunsch Optionen wählen<br>
        6. Dateinamen angeben und speichern

        Um die Daten der Tabellen selbst zu exportieren, sind die ersten Schritte die selben: <br>
        1. Datenbank auswählen <br>
        2. Tabelle auswählen <br>
        3. Rechter Mausklick | Alle Tasks | <B>Daten exportieren...</b><br>
        4. usw

        Comment

        Working...
        X