Bagikan melalui


Mulai cepat: Membuat salinan lokal baru database dalam kontainer dengan sqlcmd

Dalam mulai cepat ini, Anda akan menggunakan satu perintah di sqlcmd untuk membuat kontainer baru, dan memulihkan database ke kontainer tersebut untuk membuat salinan lokal database baru, untuk pengembangan atau pengujian.

Prasyarat

Keterangan

Menginstal sqlcmd (Go) melalui manajer paket menggantikan sqlcmd (ODBC) dengan sqlcmd (Go) di jalur lingkungan Anda. Setiap sesi baris perintah saat ini perlu ditutup dan dibuka kembali agar perubahan ini berlaku. sqlcmd (ODBC) tidak dihapus, dan masih dapat digunakan dengan menentukan jalur lengkap ke executable.

Anda juga dapat memperbarui variabel PATH Anda untuk menunjukkan versi mana yang diutamakan. Untuk melakukannya di Windows 11, buka Pengaturan sistem dan buka Tentang > pengaturan sistem Tingkat Lanjut. Saat Properti Sistem terbuka, pilih tombol Variabel Lingkungan. Di bagian bawah, di bawah Variabel sistem, pilih Jalur lalu pilih Edit. Jika lokasi sqlcmd (Go) disimpan ke (C:\Program Files\sqlcmd adalah default) tercantum sebelum C:\Program Files\Microsoft SQL Server\<version>\Tools\Binn, maka sqlcmd (Go) digunakan.

Anda dapat membalikkan urutan untuk membuat sqlcmd (ODBC) menjadi default lagi.

Mengunduh dan menginstal sqlcmd (Go)

Untuk informasi selengkapnya, lihat Mengunduh dan menginstal utilitas sqlcmd.

Masalah apa yang akan kita pecahkan?

Panduan cepat ini menjelaskan proses pembuatan salinan lokal dari database, lalu melakukan kueri untuk menganalisis pengeluaran oleh pelanggan.

Membuat kontainer baru dan memulihkan database

Buat instans SQL Server baru dalam kontainer menggunakan versi terbaru SQL Server. Perintah juga memulihkan WideWorldImporters database.

Buka jendela terminal baru dan jalankan perintah berikut:

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

Mengkueri database di Azure Data Studio

Buka Azure Data Studio dan lihat datanya.

  1. Di jendela terminal yang sama, jalankan perintah berikut:

    sqlcmd open ads
    
  2. Sekarang setelah Anda memiliki salinan lokal database, Anda bisa menjalankan kueri. Berikut adalah kueri yang dapat Anda gunakan untuk menganalisis pengeluaran oleh pelanggan:

    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;
    

Bagaimana kita memecahkan masalah?

Anda dapat dengan cepat membuat salinan lokal database untuk tujuan pengembangan dan pengujian. Dengan satu perintah, Anda membuat instans lokal baru dan memulihkan cadangan terbaru ke dalamnya. Anda kemudian menjalankan perintah lain untuk menyambungkannya melalui Azure Data Studio. Anda kemudian mengkueri database menggunakan Azure Data Studio untuk menganalisis pengeluaran oleh pelanggan.

Membersihkan sumber daya

Setelah selesai mencoba database, hapus kontainer dengan perintah berikut:

sqlcmd delete --force

--force Bendera digunakan di sini untuk kenyamanan karena kami berada di lingkungan demo. Dalam kebanyakan kasus, lebih baik tidak mengaktifkan --force untuk memastikan Anda tidak secara tidak sengaja menghapus database yang tidak Anda inginkan.