Cara: Menggunakan Skema Dibandingkan dengan Membandingkan Definisi Database yang Berbeda

SQL Server Data Tools (SSDT) menyertakan utilitas Schema Compare yang dapat Anda gunakan untuk membandingkan dua definisi database. Sumber dan target perbandingan dapat berupa kombinasi database yang terhubung, proyek database SQL Server, atau rekam jepret atau file .dacpac. Hasil perbandingan muncul sebagai serangkaian tindakan yang harus diambil dengan target untuk membuatnya sama dengan sumbernya. Setelah perbandingan selesai, Anda dapat memperbarui target secara langsung (jika target adalah proyek atau database) atau menghasilkan skrip pembaruan yang memiliki efek yang sama.

Perbedaan antara sumber dan target muncul di kisi untuk mudah ditinjau. Anda dapat menelusuri dan meninjau setiap perbedaan dalam kisi hasil atau dalam bentuk skrip. Anda kemudian dapat secara selektif mengecualikan perbedaan tertentu.

Anda dapat menyimpan perbandingan baik sebagai bagian dari proyek Database SQL Server atau sebagai file mandiri. Anda juga dapat mengatur opsi yang mengontrol cakupan perbandingan dan aspek pembaruan. Kemudian Anda dapat menyimpan perbandingan sehingga Anda dapat dengan mudah mengulangi perbandingan yang sama nanti atau menggunakannya sebagai titik awal untuk perbandingan baru.

Peringatan

Jika proyek ditentukan sebagai target perbandingan, panjang jalur maksimum yang didukung (tidak termasuk huruf drive, titik dua, dan garis miring terbalik terkemuka) untuk proyek adalah 256 karakter. Jika jalur proyek Anda melebihi 256 karakter, Anda masih akan dapat membandingkan skemanya dengan database atau proyek lain. Namun, Anda tidak akan dapat memperbarui skemanya.

Prosedur berikut membandingkan skema proyek database dengan database yang tersambung. Ini menggunakan entitas yang dibuat dalam prosedur sebelumnya di bagian Kelola Tabel, Hubungan, dan Perbaikan Kesalahan dan Pengembangan Database Offline Berorientasi Proyek.

Membandingkan definisi database

  1. Pada menu Alat, pilih SQL Server, lalu pilih Perbandingan Skema Baru.

    Atau, klik kanan proyek TradeDev di Penjelajah Solusi, dan pilih Perbandingan Skema.

    Jendela Perbandingan Skema terbuka, dan Visual Studio secara otomatis menetapkan nama seperti SqlSchemaCompare1.

    Dua menu dropdown dengan panah hijau di antaranya muncul tepat di bawah toolbar jendela Bandingkan Skema. Menu ini memungkinkan Anda memilih definisi database untuk sumber dan target perbandingan Anda.

  2. Di menu dropdown Pilih Sumber , pilih Pilih Sumber dan dialog Pilih Skema Sumber terbuka.

    Jika Anda membuka jendela Bandingkan Skema dengan mengklik kanan nama proyek, skema sumber sudah diisi dan Anda dapat melanjutkan ke langkah 4.

  3. Pilih tombol radio Proyek , lalu pilih proyek database TradeDev yang telah Anda buat di prosedur sebelumnya.

  4. Dari menu dropdown Pilih Target di Jendela Perbandingan Skema, pilih Pilih Target, dan dialog Pilih Skema Target terbuka. Di bagian Skema, pilih tombol radio Database, lalu pilih tombol Koneksi ion Baru.

  5. Dalam kotak dialog Properti Koneksi ion, masukkan nama server tempat TradeDev database berada dan pastikan kredensial autentikasi yang benar disediakan. Lalu pilih TradeDev di Koneksi ke database dan pilih OK.

    Anda juga dapat memilih tombol Opsi di toolbar Jendela Perbandingan Skema untuk menentukan objek mana yang dibandingkan, jenis perbedaan apa yang diabaikan, dan pengaturan lainnya.

  6. Pilih tombol Bandingkan di toolbar Jendela Bandingkan Skema untuk memulai proses perbandingan.

    Ketika perbandingan selesai, perbedaan struktural antara proyek dan database muncul di panel Hasil di bagian atas jendela. Secara default, grup hasil perbandingan semua perbedaan dikelompokkan menurut tindakan (seperti Hapus, Ubah, atau Tambahkan). Panel Hasil menampilkan baris untuk setiap objek database yang berbeda antara definisi database. Setiap baris mengidentifikasi objek dalam skema sumber atau target (atau keduanya) dan tindakan yang akan diambil pada skema target untuk membuat objek target sama dengan objek sumber. Jika objek telah direfaktor dan diganti namanya atau dipindahkan ke skema baru, nama sumber dan target berbeda, dan nama sumber muncul dalam font tebal untuk menyoroti perbedaan.

    Secara default daftar hasil menyembunyikan objek yang sama dalam kedua skema atau yang tidak didukung untuk pembaruan (misalnya, objek bawaan). Anda dapat memilih tombol filter yang sesuai di bilah alat untuk menampilkan objek ini.

    Untuk mengubah preferensi pengelompokan, pilih daftar dropdown Hasil Grup di toolbar. Pilih Ketik untuk mengelompokkan hasil menurut jenis objek (misalnya, menurut tabel, tampilan, atau prosedur tersimpan).

  7. Products Temukan tabel dalam Tables grup. Pilih baris dan Definisi sumber dan target tabel muncul di panel Definisi Objek dengan perbedaan yang disorot. Anda juga bisa memperluas Products baris tabel di panel Hasil untuk memeriksa elemen tertentu dalam tabel yang berbeda.

  8. Secara default, semua perbedaan disertakan dalam cakupan tindakan Perbarui Target. Anda dapat mengecualikan perbedaan yang tidak ingin Anda sinkronkan. Untuk melakukannya, hapus centang kolom Tindakan di tengah setiap baris. Atau, klik kanan baris di panel Skema, dan pilih Kecualikan. Baris segera berwarna abu-abu. Ketika tiba saatnya untuk memperbarui database target, baris ini tidak dipertimbangkan untuk perubahan yang tertunda.

    Anda juga dapat mengklik kanan pada baris grup dan memilih Kecualikan Semua atau Sertakan Semua, yang setara dengan menghapus centang atau memeriksa semua perbedaan dalam grup tersebut. Saat Anda mengelompokkan hasil berdasarkan skema, ini adalah cara yang berguna untuk menyertakan atau mengecualikan semua perubahan pada skema tertentu.

    • Jika baris yang dikecualikan memiliki objek dependen (misalnya, baris Tabel yang direferensikan oleh baris Tampilan ), baris yang dikecualikan dinonaktifkan tetapi kotak centangnya tidak dikosongkan. Setelah semua baris yang bergantung padanya tidak dicentang, baris yang dinonaktifkan akan tidak dicentang. Selain itu, jika baris direfaktor (diganti namanya atau dipindahkan ke skema lain), maka kotak centang dinonaktifkan untuk baris tersebut dan salah satu baris anak dependennya.

      Jika Anda menyegarkan perbandingan, perbedaan yang telah Anda pilih untuk dilewati akan diabaikan.

    • Jika Anda menggunakan variabel SQLCMD, alat Schema Compare menggunakan nilai lokal di properti proyek Anda, dan nilai default diabaikan. Untuk informasi selengkapnya, lihat Proyek Database Pengaturan.

Untuk memperbarui skema target, Anda memiliki dua opsi. Anda dapat memperbarui target langsung dari jendela Bandingkan Skema jika target adalah database atau proyek, atau Anda dapat membuat skrip pembaruan jika targetnya adalah database atau file database. Skrip yang dihasilkan muncul di Editor Transact-SQL, tempat Anda dapat memeriksa skrip menjalankannya terhadap database. Prosedur berikut menjelaskan opsi ini lebih lanjut.

Peringatan

Pembaruan akan gagal karena perubahan kami melibatkan perubahan kolom dari NOT NULL ke NULL dan sebagai akibatnya menyebabkan kehilangan data. Jika Anda ingin melanjutkan pembaruan, pilih tombol Opsi (yang kelima dari kiri) di toolbar untuk Perbandingan Skema dan hapus centang pada penyebaran bertahap blok jika opsi kehilangan data.

Membandingkan skema dengan model otomatisasi Visual Studio

  1. Buka menu Tampilan, arahkan ke Windows Lain, dan pilih Jendela Perintah.

  2. Di Jendela Perintah, ketik perintah berikut:

    Tools.SSDTNewSchemaComparison
    

Memperbarui langsung di jendela Perbandingan Skema

  1. Pilih tombol Perbarui pada toolbar untuk jendela Bandingkan Skema.

  2. Periksa skrip perubahan yang dihasilkan. Anda dapat menyimpan skrip dengan menggunakan menu File/Baru. Ini bisa berguna untuk situasi ketika Anda tidak berwenang untuk memperbarui database produksi, dalam hal ini Anda dapat memberikan skrip ke DBA untuk penyebaran nanti.

  3. Jika Anda memiliki izin yang diperlukan untuk memperbarui database, pilih tombol Jalankan Kueri di toolbar panel pengeditan untuk menjalankan skrip.

Perbarui berdasarkan skrip

  1. Pilih tombol Hasilkan Skrip (yang keempat dari kiri) di toolbar untuk jendela Bandingkan Skema.

    Skrip yang dihasilkan muncul di jendela Editor Transact-SQL baru

    Peringatan

    Hanya .dacpac file yang dihasilkan oleh proses rekam jepret SSDT yang mendukung perilaku ini. Anda tidak dapat menargetkan file yang .dacpac dihasilkan oleh alat atau kerangka kerja Aplikasi tingkat Data (DAC) SQL saat ini.

  2. Periksa skrip perubahan yang dihasilkan. Anda dapat menyimpan skrip dengan menggunakan perintah menu File/Simpan atau File/Simpan Sebagai .

    Skrip yang disimpan dapat berguna dalam situasi saat Anda tidak berwenang untuk memperbarui database produksi. Dalam kasus ini, Anda dapat memberikan skrip ke DBA untuk penyebaran nanti.

    Atau, Anda dapat menghubungkan Editor Transact-SQL ke server yang sesuai dan menjalankan skrip secara langsung. Sebelum melakukan prosedur ini, Anda harus memiliki izin yang diperlukan untuk membuat atau memperbarui database. Jika Anda memiliki izin yang diperlukan untuk memperbarui database, pilih tombol Jalankan Kueri di toolbar panel pengeditan untuk menjalankan skrip.

  3. Klik tombol Sambungkan. Tindakan ini tersambung ke server saat ini atau meminta Anda untuk memasukkan atau memilih server dalam dialog Koneksi ke Server. Nama database didefinisikan dalam skrip sebagai variabel perintah.

  4. Periksa skrip dan, jika perlu, buat perubahan apa pun pada variabel perintah yang menentukan nama database target dan awalan terkait dan jalur file.

  5. Pilih tombol Jalankan di toolbar panel pengeditan untuk menjalankan skrip.

Lihat juga