共用方式為


快速入門:使用 sqlcmd 在容器中建立資料庫的新本機複本

在本快速入門中,您將使用 sqlcmd 中的單一命令來建立新的容器,並將資料庫還原至該容器,以建立資料庫的新本機複本,以進行開發或測試。

先決條件

備註

通過套件管理器安裝 sqlcmd (Go)將會在您的環境路徑中,用 sqlcmd (Go) 取代 sqlcmd (ODBC)。 任何目前的命令行會話都必須關閉並重新開啟,此變更才會生效。 sqlcmd (ODBC) 未移除,而且仍可藉由指定可執行檔的完整路徑來使用。

您也可以更新 PATH 變數,以指出哪個版本優先。 若要在 Windows 11 中這樣做,請開啟 [系統設定],然後移至 [關於] > [進階系統設定]。 在 [系統屬性] 開啟時,選取 [環境變數] 按鈕。 在下半部的 [系統變數] 下,選取 [路徑],然後選取 [編輯]。 如果 sqlcmd (Go) 的儲存位置 (預設為 C:\Program Files\sqlcmd) 列在 C:\Program Files\Microsoft SQL Server\<version>\Tools\Binn 之前,則使用 sqlcmd (Go)。

您可以反轉順序,讓 sqlcmd (ODBC) 再次成為預設值。

下載並安裝 sqlcmd (Go)

如需詳細資訊,請參閱 下載並安裝 sqlcmd 公用程式

我們會解決什麼問題?

本快速入門會逐步解說建立資料庫本地副本的程式,然後查詢資料庫以分析客戶的支出。

建立新的容器並還原資料庫

使用最新版本的 SQL Server,在容器中建立新的 SQL Server 執行個體。 此命令也會還原 WideWorldImporters 資料庫。

開啟新的終端機視窗,然後執行下列命令:

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

在 Azure Data Studio 中查詢資料庫

開啟 Azure Data Studio 並查看數據。

  1. 在相同的終端機視窗中,執行下列命令:

    sqlcmd open ads
    
  2. 現在您已擁有資料庫的本機複本,您可以執行查詢。 以下是您可以用來分析客戶支出的查詢:

    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;
    

我們如何解決此問題?

您可以快速建立資料庫的本機複本,以供開發和測試之用。 使用單一命令,您已建立新的本機實例,並將最新的備份還原至該實例。 然後,您執行了另一個命令,以透過 Azure Data Studio 連線到它。 接著,您已使用 Azure Data Studio 查詢資料庫,以分析客戶的支出。

清理資源

當您完成嘗試資料庫時,請使用下列命令刪除容器:

sqlcmd delete --force

在這裡使用--force旗標是為了方便,因為我們是在示範環境中。 在大部分情況下,最好將--force旗標關閉,以確保您不會不小心刪除您不打算刪除的資料庫。