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 editoru Visual Studio Code

Teď, když máte místní kopii databáze, můžete spouštět dotazy.

Připojte se k databázi pomocí rozšíření MSSQL pro Visual Studio Code a spuštěním následujícího dotazu analyzujte ú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ým jste se k němu připojili prostřednictvím Visual Studio Code. Poté jste použili rozšíření MSSQL pro Visual Studio Code k dotazování databáze a analýze útrat zákazníků.

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