在本快速入门中,你将使用 sqlcmd 中的单个命令创建新容器,并将数据库还原到该容器,以创建数据库的新本地副本,以便进行开发或测试。
- 安装的容器运行时,例如 Docker,或者 Podman
- 下载并安装 Azure Data Studio
- 安装最新的 sqlcmd
如果通过包管理器安装 sqlcmd (Go),会在环境路径中将 sqlcmd (ODBC) 替换为 sqlcmd (Go)。 需要关闭任何当前命令行会话,再将它们重新打开,才能使此更改生效。 不会移除 sqlcmd (ODBC),仍可通过指定可执行文件的完整路径来使用它。
还可更新 PATH
变量来指示优先使用哪个版本。 若要在 Windows 11 中执行此操作,请打开“系统设置”,然后转到“关于”>“高级系统设置”。 打开“系统属性”时,选择“环境变量”按钮。 在下半部分的“系统变量”下,选择“路径”,然后选择“编辑”。 如果 sqlcmd (Go) 保存到 C:\Program Files\Microsoft SQL Server\<version>\Tools\Binn
前面列出的 C:\Program Files\sqlcmd
(默认位置),则使用 sqlcmd (Go)。
可以颠倒顺序,使 sqlcmd (ODBC) 再次成为默认值。
sqlcmd (Go) 可以在 Microsoft Windows、macOS 和 Linux 上跨平台安装。 高于 1.6 的版本可能不会在所有包管理器中提供。 尚未估计其发布日期。
导入公共存储库 GPG 密钥。
curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
添加 Microsoft 存储库,其中
ubuntu/20.04
段可以是debian/11
、ubuntu/20.04
或ubuntu/22.04
。add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/prod.list)"
使用 apt 安装 sqlcmd (Go)。
apt-get update apt-get install sqlcmd
导入 Microsoft 存储库密钥。
rpm --import https://packages.microsoft.com/keys/microsoft.asc
下载存储库配置文件,其中
fedora/32
段可以是opensuse/42.3
、rhel/8
或sles/15
。 如果操作系统版本不直接对应于其中一个选项,则可能可以使用某个版本中的存储库配置文件。curl -o /etc/yum.repos.d/packages-microsoft-com-prod.repo https://packages.microsoft.com/config/fedora/40/prod.repo
使用 yum 安装 sqlcmd (Go)。
yum install sqlcmd
从 GitHub 代码存储库下载最新版本的 sqlcmd (Go) 中的相应
-linux-x64.tar.bz2
或-linux-arm.tar.bz2
资产。从下载的 zip 文件夹中提取
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 并查看数据。
在同一终端窗口中运行以下命令:
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 i INNER JOIN Sales.Customers c ON i.CustomerID = c.CustomerID INNER JOIN Sales.InvoiceLines il ON i.InvoiceID = il.InvoiceID INNER JOIN Sales.BuyingGroups 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 i INNER JOIN Sales.Customers c ON i.CustomerID = c.CustomerID INNER JOIN Sales.InvoiceLines il ON i.InvoiceID = il.InvoiceID LEFT JOIN Sales.BuyingGroups 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
标志,以确保不会无意中删除你不想删除的数据库。