Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här snabbstarten använder du ett enda kommando i sqlcmd för att skapa en ny container och återställa en databas till containern för att skapa en ny lokal kopia av en databas för utveckling eller testning.
Förutsättningar
- En containerdrivrutin är installerad, till exempel Docker eller Podman
- Ladda ned och installera Azure Data Studio
- Installera den senaste sqlcmd
Anmärkningar
Om du installerar sqlcmd (Go) via en pakethanterare ersätts sqlcmd (ODBC) med sqlcmd (Go) i din miljösökväg. Alla aktuella kommandoradssessioner måste stängas och öppnas igen för att ändringen ska börja gälla. sqlcmd (ODBC) tas inte bort och kan fortfarande användas genom att ange den fullständiga sökvägen till den körbara filen.
Du kan också uppdatera PATH variabeln för att ange vilken version som har företräde. Om du vill göra det i Windows 11 öppnar du Systeminställningar och går till Om > Avancerade systeminställningar. När Systemegenskaper öppnas väljer du knappen Miljövariabler. I den nedre halvan, under Systemvariabler, välj Sökväg och välj sedan Redigera. Om platsen sqlcmd (Go) sparas till (C:\Program Files\sqlcmd är standard) och förekommer före C:\Program Files\Microsoft SQL Server\<version>\Tools\Binn, används sqlcmd (Go).
Du kan reversera ordningen för att göra sqlcmd (ODBC) till standard igen.
Ladda ned och installera sqlcmd (Go)
Mer information finns i Ladda ned och installera sqlcmd-verktyget.
Vilket problem kommer vi att lösa?
Den här snabbstarten går igenom processen med att skapa en lokal kopia av en databas och sedan skicka frågor till den för att analysera utgifter per kund.
Skapa en ny container och återställa en databas
Skapa en ny SQL Server-instans i en container med den senaste versionen av SQL Server. Kommandot återställer också WideWorldImporters-databasen.
Öppna ett nytt terminalfönster och kör följande kommando:
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
Fråga databasen i Azure Data Studio
Öppna Azure Data Studio och ta en titt på data.
Kör följande kommando i samma terminalfönster:
sqlcmd open adsNu när du har en lokal kopia av databasen kan du köra frågor. Här är en fråga som du kan använda för att analysera utgifter per kund:
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;
Hur löste vi problemet?
Du kunde snabbt skapa en lokal kopia av en databas i utvecklings- och testsyfte. Med ett enda kommando skapade du en ny lokal instans och återställde den senaste säkerhetskopian till den. Sedan körde du ett annat kommando för att ansluta till det via Azure Data Studio. Sedan frågade du ut databasen med hjälp av Azure Data Studio för att analysera utgifter för varje kund.
Rensa resurser
När du är klar med att testa databasen tar du bort containern med följande kommando:
sqlcmd delete --force
Flaggan --force används här för enkelhetens skull eftersom vi befinner oss i en demomiljö. I de flesta fall är det bättre att lämna --force flaggan av för att se till att du inte oavsiktligt tar bort en databas som du inte menar.