Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Neste início rápido, você usará um único comando no sqlcmd para criar um novo contêiner e restaurar um banco de dados nesse contêiner para criar uma nova cópia local de um banco de dados, para desenvolvimento ou teste.
Pré-requisitos
- Um runtime de contêiner instalado, como Docker ou Podman
- Instalar a extensão MSSQL para Visual Studio Code
- Instalar o sqlcmd mais recente
Comentários
A instalação do sqlcmd (Go) por meio de um gerenciador de pacotes substitui o sqlcmd (ODBC) pelo sqlcmd (Go) em seu caminho de ambiente. Todas as sessões de linha de comando atuais precisam ser fechadas e reabertas para que essa alteração tenha efeito. O sqlcmd (ODBC) não é removido e ainda pode ser usado especificando o caminho completo para o executável.
Você também pode atualizar sua variável PATH para indicar qual versão tem precedência. Para fazer isso no Windows 11, abra Configurações do sistema e acesse Sobre >Configurações avançadas do sistema. Quando as Propriedades do Sistema forem abertas, selecione o botão Variáveis de Ambiente. Na metade inferior, em Variáveis do Sistema, selecione Caminho e, em seguida, selecione Editar. Se o local no qual o sqlcmd (Go) for salvo (C:\Program Files\sqlcmd é o padrão) estiver listado antes de C:\Program Files\Microsoft SQL Server\<version>\Tools\Binn, o sqlcmd (Go) será usado.
Você pode inverter a ordem para tornar o sqlcmd (ODBC) o padrão novamente.
Baixar e instalar o sqlcmd (Go)
Para obter mais informações, consulte Baixar e instalar o utilitário sqlcmd.
Que problema vamos resolver?
Este guia rápido apresenta o processo de criação de uma cópia local de um banco de dados e consultá-la em seguida para analisar os gastos por cliente.
Criar um novo contêiner e restaurar um banco de dados
Crie uma nova instância do SQL Server em um contêiner usando a última versão do SQL Server. O comando também restaura o banco de dados WideWorldImporters.
Abra uma nova janela de terminal e execute o seguinte comando:
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
Consultar o banco de dados no Visual Studio Code
Agora que você tem uma cópia local do seu banco de dados, pode executar consultas.
Conecte-se ao banco de dados com a extensão MSSQL para Visual Studio Code e execute a seguinte consulta para analisar os gastos do cliente:
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;
Como resolvemos o problema?
Você conseguiu criar rapidamente uma cópia local de um banco de dados para fins de desenvolvimento e teste. Com um único comando, você criou uma nova instância local e restaurou o backup mais recente para ela. Em seguida, você executou outro comando para se conectar a ele por meio do Visual Studio Code. Em seguida, você consultou o banco de dados usando a extensão MSSQL para Visual Studio Code para analisar os gastos por cliente.
Limpar os recursos
Quando terminar de testar o banco de dados, exclua o contêiner com o seguinte comando:
sqlcmd delete --force
O sinalizador --force é usado aqui por conveniência, já que estamos em um ambiente de demonstração. Na maioria dos casos, é melhor deixar o sinalizador --force desativado para garantir que você não esteja excluindo um banco de dados sem querer.