Bagikan melalui


Menambahkan file yang ada ke proyek SQL

Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance

Sebagai konsep, setelah proyek SQL dibuat, objek dapat ditambahkan ke dalamnya satu per satu atau secara massal. Menambahkan objek satu per satu mudah, sementara menambahkan objek secara massal dapat dilakukan dari konten .dacpac file atau satu atau beberapa skrip SQL. Artikel ini menjelaskan cara menambahkan konten skrip dacpac atau SQL ke proyek SQL dan tradeoff antara sumber.

Mengimpor dari .dacpac file

File .dacpac adalah model database yang dikompilasi dan memerlukan alat khusus untuk membaca dan menerapkan file. File .dacpac dapat dihasilkan sebagai artefak build proyek SQL atau dari database yang ada, dan Anda mungkin diberikan satu tanpa akses ke sumbernya. Selain banyak alat yang dapat menerapkan .dacpac ke database, SQL Server Data Tools (SSDT) di Visual Studio dapat mengimpor konten .dacpac file langsung ke dalam proyek. Kemampuan untuk mengimpor skema dari database atau file .dacpac hanya tersedia jika tidak ada objek skema yang sudah ditentukan dalam proyek.

Cuplikan layar menu impor pada proyek SQL di Visual Studio SSDT.

Saat mengimpor, definisi objek 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 ditambahkan ke folder Diabaikan pada Impor dalam proyek.

Jika Visual Studio dan SQL Server Data Tools tidak tersedia, Anda dapat:

Mengimpor dari skrip SQL

Skrip T-SQL dapat diimpor ke dalam proyek SQL dengan dua cara: dengan menambahkan file skrip ke direktori proyek atau dengan memproses konten skrip di Visual Studio. Metode yang Anda pilih tergantung pada jenis proyek dan tingkat kontrol yang diinginkan atas proses impor. Dalam kedua kasus, sintaks file skrip harus valid.

Menambahkan file ke proyek

Dengan proyek SQL bergaya SDK, Anda dapat menambahkan skrip SQL yang ada ke proyek dengan menempatkannya di direktori proyek karena Microsoft.Build.Sql secara otomatis menyertakan file apa pun *.sql dalam proyek. Jika Anda menggunakan proyek bergaya non-SDK, Anda harus mengimpor skrip SQL yang ada ke dalam proyek dengan menggunakan pemrosesan skrip di Visual Studio. File *.sql yang secara otomatis disertakan dalam proyek disertakan dalam build model database sebagai objek SQL.

File yang ditambahkan ke folder proyek yang berisi definisi objek duplikat ke objek yang sudah ada dalam proyek menyebabkan build proyek gagal. Anda perlu mengatasi konflik secara manual dengan menghapus objek duplikat atau mengganti nama salah satu objek.

Untuk menambahkan file ke proyek sebagai skrip pra/pasca-penyebaran, selain menambahkan file ke direktori proyek, Anda juga harus menyertakan file dalam file proyek. Misalnya, untuk menambahkan file bernama Pre-DeploymentScript.sql sebagai skrip pra-penyebaran, tambahkan yang berikut ini ke file proyek:

<ItemGroup>
  <PreDeploy Include="Pre-DeploymentScript.sql" />
</ItemGroup>

Informasi selengkapnya tentang skrip pra/pasca penyebaran dapat ditemukan dalam dokumentasi proyek SQL.

Memproses isi file

SQL Server Data Tools (SSDT) di Visual Studio juga memiliki kemampuan untuk memproses konten skrip SQL sambil menambahkannya ke proyek gaya asli. Selama pemrosesan ini, jika skrip berisi objek yang sudah ditentukan dalam proyek, definisi objek diperbarui agar sesuai dengan skrip. Jika skrip berisi objek yang belum ditentukan dalam proyek, file baru dibuat untuk objek tersebut.

Ada masalah yang diketahui di mana pemrosesan skrip dapat mengakibatkan batasan duplikat dan pernyataan kunci enkripsi. Jika Anda mengalami masalah ini, gunakan jendela output build untuk mengidentifikasi sumber duplikat dan menghapusnya secara manual dari proyek.

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