Bagikan melalui


Mengimpor ke Project Database

Anda dapat menggunakan Impor untuk mengisi proyek dengan objek baru dari database langsung atau .dacpac, atau untuk memperbarui objek yang ada dalam proyek Anda dengan definisi baru dari skrip. Ada beberapa perbedaan perilaku yang perlu diperhatikan di antara ketiga jalur ini, yang dijelaskan di bawah ini.

Menu Impor

Menu Impor SSDT Menu Impor

Bagian dalam topik ini

Impor Sumber: Database atau Aplikasi Tingkat Data (*.dacpac)

Sumber Impor: Skrip (*.sql)

Impor Objek Terenkripsi

Impor Sumber: Database atau Aplikasi Tingkat Data (*.dacpac)

Kemampuan untuk mengimpor skema dari database atau file .dacpac hanya tersedia jika tidak ada objek skema yang sudah ditentukan dalam proyek. Ini tidak termasuk skrip RefactorLogs atau Pra/Pasca-Penyebaran.

Saat diimpor, definisi objek akan diskrip ke dalam file proyek menggunakan default organisasi SSDT untuk objek baru: file baru untuk objek tingkat atas, turunan hierarkis yang ditentukan dalam file yang sama dengan batasan induk, tabel/kolom yang ditentukan sebaris jika memungkinkan. Untuk visibilitas dan kontrol yang lebih ditargetkan untuk setiap objek, gunakan Perbandingan Skema alih-alih Impor.

Jika sumber impor berisi definisi variabel Pre-and-Deployment Scripts, RefactorLogs, atau SQLCMD, mereka akan diimpor ke dalam proyek. Jika proyek sudah berisi salah satu artefak ini, file yang diimpor akan ditambahkan ke folder Diabaikan pada Impor dalam proyek.

Diabaikan pada Folder Impor

SSDT Diabaikan pada Impor Folder

Sumber Impor: Skrip (*.sql)

Semua objek dari sumber impor yang belum ada dalam proyek akan ditambahkan, dan semua objek dalam sumber impor yang sudah ada dalam proyek akan menimpa definisi objek dalam proyek.

Catatan

Ada dua bug yang diketahui di jalur ini yang akan diperbaiki dalam rilis mendatang:

  • Jika batasan tabel/kolom ditentukan di luar pernyataan CREATE TABLE dalam definisi tabel proyek, impor akan menimpa definisi tabel sehingga batasan sebaris. Namun, itu akan meninggalkan batasan di luar garis, yang mengakibatkan kendala duplikat dalam proyek.
  • Setiap kunci master atau kunci enkripsi database dari skrip sumber Anda yang sudah ada dalam proyek akan diduplikasi saat diimpor. Hapus duplikat untuk membangun proyek.

Proses Impor dari Skrip tidak akan memahami skrip Pra/Pasca-Penyebaran, variabel SQLCMD, atau file RefactorLog. Konstruksi ini dan konstruksi lain yang tidak didukung yang terdeteksi saat impor akan ditempatkan dalam file ScriptsIgnoredOnImport.sql di folder Skrip di proyek Anda.

Impor Objek Terenkripsi

Saat mengimpor objek terenkripsi ke dalam proyek database, isi lengkap definisi objek tidak selalu dapat diambil dari server. Dengan demikian, perilaku impor bisa berbeda saat berhadapan dengan kelas objek ini.

Ketika definisi isi lengkap tidak dapat diambil, header/footer objek, bersama dengan isi dummy, akan ditulis. Anda dapat mengharapkan untuk mengalami perilaku ini saat Mengimpor atau menggunakan Perbandingan Skema di mana sumbernya adalah database langsung atau .dacpac yang diekstrak dari database.

Skrip dengan Isi Dummy

Skrip dengan Skrip Tubuh Dummy

Dalam kasus di mana definisi objek lengkap tersedia dan dapat diambil, Impor dan Skema Bandingkan akan membawanya ke dalam proyek secara keseluruhan. Ini terjadi saat memperbarui proyek dari skrip, .dacpac yang dibangun dari proyek database, atau proyek database lainnya.