快速入門:使用 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

在 Visual Studio Code 中查詢資料庫

現在您已擁有資料庫的本機複本,您可以執行查詢。

透過 Visual Studio Code 的 MSSQL 擴充功能連接資料庫,並執行以下查詢以分析客戶的支出:

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;

我們如何解決此問題?

您可以快速建立資料庫的本機複本,以供開發和測試之用。 使用單一命令,您已建立新的本機實例,並將最新的備份還原至該實例。 接著你又用 Visual Studio Code 執行另一個指令連接到它。 接著你用 Visual Studio Code 的 MSSQL 擴充功能查詢資料庫,分析客戶的支出。

清理資源

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

sqlcmd delete --force

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