Compartilhar via


Início rápido: criar uma nova cópia local de um banco de dados em um contêiner com sqlcmd

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

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.

  1. Na mesma janela do terminal, execute o seguinte comando:

    sqlcmd open ads
    
  2. Agora 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.