Megosztás:


Rövid útmutató: Adatbázis új helyi másolatának létrehozása egy tárolóban sqlcmd használatával

Ebben a rövid útmutatóban egyetlen parancsot fog használni az sqlcmd-ben egy új tároló létrehozásához, és visszaállít egy adatbázist arra a tárolóra, hogy létrehozhasson egy új helyi másolatot egy adatbázisról fejlesztés vagy tesztelés céljából.

Előfeltételek

Megjegyzések

A csomagkezelőn keresztül történő sqlcmd (Go) telepítése a környezeti útvonalon lecseréli a sqlcmd (ODBC)-t sqlcmd (Go)-ra. A módosítás érvénybe lépéséhez minden aktuális parancssori munkamenetet be kell zárni és újra meg kell nyitni. Az sqlcmd (ODBC) nincs eltávolítva, és továbbra is használható a végrehajtható fájl teljes elérési útjának megadásával.

A változót úgy is frissítheti PATH , hogy jelezze, melyik verzió élvez elsőbbséget. Ehhez a Windows 11-ben nyissa meg a Rendszerbeállításokat, és lépjen a Névjegy > Speciális rendszerbeállításokrészhez. Amikor megnyílik rendszertulajdonságok, válassza a Környezeti változók gombot. Az alsó részén, a Rendszerváltozókalatt válassza az Elérési út lehetőséget, majd a Szerkesztésparancsot. Ha a helyen található sqlcmd (Go) a (C:\Program Files\sqlcmd az alapértelmezett) van felsorolva a C:\Program Files\Microsoft SQL Server\<version>\Tools\Binnelőtt, akkor a sqlcmd (Go) kerül használatra.

Megfordíthatja a sorrendet, hogy sqlcmd (ODBC) legyen ismét az alapértelmezett.

Sqlcmd (Go) letöltése és telepítése

További információ: Az sqlcmd segédprogram letöltése és telepítése.

Milyen problémát fogunk megoldani?

Ez a rövid útmutató végigvezeti az adatbázis helyi másolatának létrehozásának folyamatán, majd lekérdezi azt az ügyfél kiadásainak elemzéséhez.

Új tároló létrehozása és adatbázis visszaállítása

Hozzon létre egy új SQL Server-példányt egy tárolóban az SQL Server legújabb verziójával. A parancs a WideWorldImporters adatbázist is visszaállítja.

Nyisson meg egy új terminálablakot, és futtassa a következő parancsot:

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

Az adatbázis lekérdezése a Visual Studio Code-ban

Most, hogy rendelkezik az adatbázis helyi másolatával, lekérdezéseket futtathat.

Csatlakozzon az adatbázishoz a Visual Studio Code MSSQL-bővítményével, és futtassa a következő lekérdezést az ügyfél kiadásainak elemzéséhez:

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;

Hogyan oldottuk meg a problémát?

Gyorsan létrehozhatott egy adatbázis helyi példányát fejlesztési és tesztelési célokra. Egyetlen paranccsal létrehozott egy új helyi példányt, és visszaállította a legutóbbi biztonsági mentést. Ezt követően egy másik parancsot futtatott, hogy a Visual Studio Code-on keresztül kapcsolódjon hozzá. Ezután lekérdezte az adatbázist a Visual Studio Code MSSQL-bővítményével, hogy elemezze az ügyfelek kiadásait.

Erőforrások tisztítása

Ha végzett az adatbázis kipróbálásával, törölje a tárolót a következő paranccsal:

sqlcmd delete --force

A --force zászlót itt használjuk a kényelem érdekében, mivel bemutató környezetben vagyunk. A legtöbb esetben jobb, ha kikapcsolja a --force jelzőt, hogy biztosan ne törölje véletlenül a nem kívánt adatbázist.