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

Sekarang setelah Anda memiliki salinan lokal database, Anda bisa menjalankan kueri.

Sambungkan ke database dengan ekstensi MSSQL untuk Visual Studio Code, dan jalankan kueri berikut 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 Visual Studio Code. Anda kemudian mengkueri database menggunakan ekstensi MSSQL untuk Visual Studio Code 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.