在本快速入门中,你将使用 sqlcmd 中的单个命令创建新容器,并将数据库还原到该容器,以创建数据库的新本地副本,以便进行开发或测试。
先决条件
- 已安装容器运行时,例如 Docker 或 Podman
- 下载并安装 Azure Data Studio
- 安装最新的 sqlcmd
注解
如果通过包管理器安装 sqlcmd (Go),会在环境路径中将 sqlcmd (ODBC) 替换为 sqlcmd (Go)。 需要关闭任何当前命令行会话,再将它们重新打开,才能使此更改生效。 sqlcmd (ODBC) 不会被移除,仍可通过指定可执行文件的完整路径来使用。
还可更新 PATH 变量来指示优先使用哪个版本。 若要在 Windows 11 中执行此操作,请打开“系统设置”,然后转到“关于”“高级系统设置”。 打开“系统属性”时,选择“环境变量”按钮。 在下半部分的“系统变量”下,选择“路径”,然后选择“编辑”。 如果 sqlcmd (Go) 保存到 前面列出的 C:\Program Files\sqlcmd(默认位置),则使用 sqlcmd (Go)C:\Program Files\Microsoft SQL Server\<version>\Tools\Binn。
可以颠倒顺序,使 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 并查看数据。
在同一终端窗口中运行以下命令:
sqlcmd open ads有了数据库的本地副本后,即可运行查询。 下面是可用于分析客户支出的查询:
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 标志,以确保不会无意中删除你不想删除的数据库。