Freigeben über


Schnellstart: Erstellen einer neuen lokalen Kopie einer Datenbank in einem Container mit sqlcmd

In dieser Schnellstartanleitung verwenden Sie einen einzelnen Befehl in sqlcmd, um einen neuen Container zu erstellen und eine Datenbank in diesem Container wiederherzustellen, um eine neue lokale Kopie einer Datenbank zu erstellen, für die Entwicklung oder Tests.

Voraussetzungen

  • Sie benötigen eine installierte Containerlaufzeit, z. B. Docker oder Podman.
  • Herunterladen und Installieren von Azure Data Studio
  • Installieren des neuesten sqlcmd

Hinweise

Wenn Sie sqlcmd (Go) über einen Paket-Manager installieren, wird sqlcmd (ODBC) in Ihrem Umgebungspfad durch sqlcmd (Go) ersetzt. Alle aktuellen Befehlszeilensitzungen müssen geschlossen und erneut geöffnet werden, damit diese Änderung wirksam wird. sqlcmd (ODBC) wird nicht entfernt und kann weiterhin verwendet werden, indem der vollständige Pfad zur ausführbaren Datei angegeben wird.

Sie können Ihre PATH-Variable auch aktualisieren, um anzugeben, welche Version Priorität hat. Öffnen Sie dazu in Windows 11 Systemeinstellungen, und wechseln Sie zu Informationen > Erweiterte Systemeinstellungen. Wenn Systemeigenschaften geöffnet wird, klicken Sie auf die Schaltfläche Umgebungsvariablen. Wählen Sie in der unteren Hälfte unter Systemvariablen die Option Pfad und dann Bearbeiten aus. Wenn der Speicherort, an dem sqlcmd (Go) gespeichert ist (standardmäßig C:\Program Files\sqlcmd), vor C:\Program Files\Microsoft SQL Server\<version>\Tools\Binn aufgeführt wird, wird sqlcmd (Go) verwendet.

Sie können die Reihenfolge umkehren, um sqlcmd (ODBC) erneut als Standardwert festzulegen.

Herunterladen und Installieren von sqlcmd (Go)

Weitere Informationen finden Sie unter "Herunterladen und Installieren des sqlcmd-Dienstprogramms".

Welches Problem werden wir lösen?

Diese Schnellstartanleitung führt Sie durch den Prozess der Erstellung einer lokalen Kopie einer Datenbank und der anschließenden Abfrage, um die Ausgaben nach Kunden zu analysieren.

Erstellen eines neuen Containers und Wiederherstellen einer Datenbank

Erstellen Sie eine neue SQL Server-Instanz in einem Container mithilfe der neuesten Version von SQL Server. Der Befehl stellt auch die WideWorldImporters-Datenbank wieder her.

Öffnen Sie ein neues Terminalfenster, und führen Sie den folgenden Befehl aus.

sqlcmd create mssql --name sql1 --accept-eula --using https://github.com/Microsoft/sql-server-samples/releases/download/wide-world-importers-v1.0/WideWorldImporters-Full.bak

Abfragen des Datenbankservers mit Azure Data Studio

Öffnen Sie Azure Data Studio und sehen Sie sich die Daten an.

  1. Führen Sie im selben Terminalfenster den folgenden Befehl aus.

    sqlcmd open ads
    
  2. Nachdem Sie nun über eine lokale Kopie Ihrer Datenbank verfügen, können Sie Abfragen ausführen. Hier ist eine Abfrage, mit der Sie Ausgaben nach Kunden analysieren können:

    SELECT bg.BuyingGroupName AS CustomerName,
           COUNT(DISTINCT i.InvoiceID) AS InvoiceCount,
           COUNT(il.InvoiceLineID) AS InvoiceLineCount,
           SUM(il.LineProfit) AS Profit,
           SUM(il.ExtendedPrice) AS ExtendedPrice
    FROM Sales.Invoices AS i
         INNER JOIN Sales.Customers AS c
             ON i.CustomerID = c.CustomerID
         INNER JOIN Sales.InvoiceLines AS il
             ON i.InvoiceID = il.InvoiceID
         INNER JOIN Sales.BuyingGroups AS bg
             ON c.BuyingGroupID = bg.BuyingGroupID
    GROUP BY bg.BuyingGroupName
    UNION
    SELECT c.CustomerName,
           COUNT(DISTINCT i.InvoiceID) AS InvoiceCount,
           COUNT(il.InvoiceLineID) AS InvoiceLineCount,
           SUM(il.LineProfit) AS Profit,
           SUM(il.ExtendedPrice) AS ExtendedPrice
    FROM Sales.Invoices AS i
         INNER JOIN Sales.Customers AS c
             ON i.CustomerID = c.CustomerID
         INNER JOIN Sales.InvoiceLines AS il
             ON i.InvoiceID = il.InvoiceID
         LEFT OUTER JOIN Sales.BuyingGroups AS bg
             ON c.BuyingGroupID = bg.BuyingGroupID
    WHERE bg.BuyingGroupID IS NULL
    GROUP BY c.CustomerName
    ORDER BY Profit DESC;
    

Wie haben wir das Problem gelöst?

Sie konnten schnell eine lokale Kopie einer Datenbank zu Entwicklungs- und Testzwecken erstellen. Mit einem einzigen Befehl haben Sie eine neue lokale Instanz erstellt und die neueste Sicherung wiederhergestellt. Anschließend haben Sie einen anderen Befehl ausgeführt, um über Azure Data Studio eine Verbindung damit herzustellen. Anschließend haben Sie die Datenbank mithilfe von Azure Data Studio abgefragt, um Ausgaben nach Kunden zu analysieren.

Bereinigen von Ressourcen

Wenn Sie mit dem Testen der Datenbank fertig sind, löschen Sie den Container mit dem folgenden Befehl:

sqlcmd delete --force

Die --force-Kennzeichnung wird hier aus Bequemlichkeit verwendet, da wir in einer Demoumgebung sind. In den meisten Fällen ist es besser, die --force-Kennzeichnung deaktiviert zu lassen, um sicherzustellen, dass Sie nicht versehentlich eine Datenbank löschen, die Sie nicht beabsichtigen.