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
- Baixar e instalar o Azure Data Studio
- 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 Azure Data Studio
Abra o Azure Data Studio e confira os dados.
Na mesma janela do terminal, execute o seguinte comando:
sqlcmd open adsAgora que você tem uma cópia local do seu banco de dados, pode executar consultas. Aqui está uma consulta que você pode usar para analisar os gastos por 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 ela por meio do Azure Data Studio. Em seguida, você consultou o banco de dados usando o Azure Data Studio 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.