Partager via


Guide de démarrage rapide : créer une nouvelle copie locale d’une base de données dans un conteneur avec sqlcmd

Dans ce guide de démarrage rapide, vous utiliserez une seule commande sqlcmd pour créer un nouveau conteneur et restaurer une base de données dans ce conteneur afin de créer une nouvelle copie locale d'une base de données, à des fins de développement ou de test.

Prérequis

  • Un runtime de conteneur installé, comme Docker ou Podman.
  • Télécharger et installer Azure Data Studio
  • Installer la dernière version de sqlcmd

Notes 

L’installation de sqlcmd (Go) par le biais d’un gestionnaire de package remplace sqlcmd (ODBC) par sqlcmd (Go) dans le chemin d’accès de votre environnement. Toutes les sessions de ligne de commande actuelles doivent être fermées et ouvertes de nouveau pour que cette modification prenne effet. sqlcmd (ODBC) n’est pas supprimé et peut toujours être utilisé en spécifiant le chemin complet de l’exécutable.

Vous pouvez également mettre à jour votre PATH variable pour indiquer quelle version est prioritaire. Pour ce faire dans Windows 11, ouvrez Paramètres système et accédez à À propos des > paramètres système avancés. Lorsque Propriétés système s'ouvre, sélectionnez le bouton Variables d'environnement. Dans la moitié inférieure, sous Variables système, sélectionnez Chemin d'accès, puis Modifier. Si l'emplacement sqlcmd (Go) est enregistré dans (C:\Program Files\sqlcmd est par défaut) est répertorié avant C:\Program Files\Microsoft SQL Server\<version>\Tools\Binn, sqlcmd (Go) est alors utilisé.

Vous pouvez inverser l’ordre pour rétablir sqlcmd (ODBC) comme valeur par défaut.

Télécharger et installer sqlcmd (Go)

Pour plus d’informations, consultez Télécharger et installer l’utilitaire sqlcmd.

Quel problème résoudrons-nous ?

Ce guide de démarrage rapide décrit le processus de création d’une copie locale d’une base de données, puis l’interroge pour analyser les dépenses du client.

Créer un nouveau container et restaurer une base de données

Créez une instance SQL Server dans un conteneur à l’aide de la dernière version de SQL Server. La commande restaure également la base de données WideWorldImporters.

Ouvrez une nouvelle fenêtre de terminal et exécutez la commande suivante :

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

Interroger la base de données avec Azure Data Studio

Ouvrez Azure Data Studio et examinez les données.

  1. Dans la même fenêtre de terminal, exécutez la commande suivante :

    sqlcmd open ads
    
  2. Maintenant que vous disposez d’une copie locale de votre base de données, vous pouvez exécuter des requêtes. Voici une requête que vous pouvez utiliser pour analyser les dépenses par le client :

    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;
    

Comment avons-nous résolu le problème ?

Vous avez pu créer rapidement une copie locale d’une base de données à des fins de développement et de test. En utilisant une seule commande, vous avez créé une nouvelle instance locale et restauré la sauvegarde la plus récente sur celle-ci. Vous avez ensuite exécuté une autre commande pour vous y connecter à l’aide d’Azure Data Studio. Vous avez ensuite interrogé la base de données à l’aide d’Azure Data Studio pour analyser les dépenses par le client.

Nettoyer les ressources

Lorsque vous avez terminé d’essayer la base de données, supprimez le conteneur en utilisant la commande suivante :

sqlcmd delete --force

L’indicateur --force est utilisé ici pour des raisons pratiques, car nous sommes dans un environnement de démonstration. Il est très souvent préférable de laisser l’indicateur --force désactivé pour vous assurer que vous ne supprimez pas par inadvertance une base de données.