Sdílet prostřednictvím


Rychlý start: Vytvoření nové místní kopie databáze v kontejneru pomocí sqlcmd

V tomto rychlém startu použijete jeden příkaz v sqlcmd k vytvoření nového kontejneru a obnovení databáze do tohoto kontejneru k vytvoření nové místní kopie databáze pro účely vývoje nebo testování.

Požadavky

Poznámky

Instalace sqlcmd (Go) prostřednictvím správce balíčků nahrazuje sqlcmd (ODBC) za sqlcmd (Go) v cestě vašeho prostředí. Aby se tato změna projevila, musí být všechny aktuální relace příkazového řádku zavřené a znovu otevřené. Sqlcmd (ODBC) se neodebere a dá se použít zadáním úplné cesty ke spustitelnému souboru.

Můžete také aktualizovat PATH proměnnou tak, aby označí, která verze má přednost. Pokud to chcete udělat ve Windows 11, otevřete Systémové nastavení a přejděte na O systému > Rozšířené nastavení systému. Když se vlastnosti systému otevře, vyberte tlačítko Proměnné prostředí. V dolní polovině v části Systémové proměnnévyberte Cesta a pak vyberte Upravit. Pokud je umístění sqlcmd (Go) uloženo (C:\Program Files\sqlcmd je výchozí) je uvedeno před C:\Program Files\Microsoft SQL Server\<version>\Tools\Binn, pak se použije sqlcmd (Go).

Pořadí můžete zvrátit, aby sqlcmd (ODBC) se stal znovu výchozí volbou.

Stažení a instalace sqlcmd (Go)

Další informace naleznete v tématu Stažení a instalace nástroje sqlcmd.

Jaký problém vyřešíme?

Tento rychlý start vás provede procesem vytváření místní kopie databáze a dotazováním na analýzu výdajů dle zákazníka.

Vytvoření nového kontejneru a obnovení databáze

Vytvořte novou instanci SQL Serveru v kontejneru pomocí nejnovější verze SQL Serveru. Příkaz také obnoví databázi WideWorldImporters.

Otevřete nové okno terminálu a spusťte následující příkaz:

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

Dotazování databáze v nástroji Azure Data Studio

Otevřete Azure Data Studio a podívejte se na data.

  1. Ve stejném okně terminálu spusťte následující příkaz:

    sqlcmd open ads
    
  2. Teď, když máte místní kopii databáze, můžete spouštět dotazy. Tady je dotaz, který můžete použít k analýze útraty zákazníkem:

    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;
    

Jak jsme tento problém vyřešili?

Podařilo se vám rychle vytvořit místní kopii databáze pro účely vývoje a testování. Pomocí jednoho příkazu jste vytvořili novou místní instanci a obnovili jste do ní nejnovější zálohu. Potom jste spustili další příkaz, který se k němu připojil přes Azure Data Studio. Pak jste pomocí nástroje Azure Data Studio dotazovali databázi k analýze útrat podle zákazníka.

Čištění zdrojů

Po dokončení pokusu o vyzkoušení databáze odstraňte kontejner pomocí následujícího příkazu:

sqlcmd delete --force

Příznak --force se zde používá pro usnadnění, protože jsme v ukázkovém prostředí. Ve většině případů je lepší nechat --force příznak vypnutý, abyste si byli jisti, že náhodou neodstraníte databázi, kterou nechcete.