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 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.