SQL Server PowerShell

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

Menginstal SQL Server PowerShell

Ada dua modul PowerShell SQL Server; SqlServer dan SQLPS.

Modul SqlServer adalah modul PowerShell saat ini yang akan digunakan.

Modul SQLPS disertakan dengan penginstalan SQL Server (untuk kompatibilitas mundur) tetapi tidak lagi diperbarui.

Modul SqlServer berisi versi cmdlet yang diperbarui di SQLPS dan menyertakan cmdlet baru untuk mendukung fitur SQL terbaru.

Versi modul SqlServer sebelumnya disertakan dengan SQL Server Management Studio (SSMS), tetapi hanya dengan versi 16.x SSMS.

Untuk menggunakan PowerShell dengan SQL Server Management Directory 17.0 dan yang lebih baru, instal modul SqlServer dari Galeri PowerShell.

Anda juga dapat menggunakan PowerShell dengan Azure Data Studio.

Mengapa modul berubah dari SQLPS ke SqlServer?

Untuk mengirim pembaruan SQL PowerShell, kami harus mengubah identitas modul SQL PowerShell, dan pembungkus yang dikenal sebagai SQLPS.exe. Karena perubahan ini, sekarang ada dua modul SQL PowerShell, modul SqlServer , dan modul SQLPS .

Perbarui skrip PowerShell jika Anda mengimpor modul SQLPS.

Jika Anda memiliki skrip PowerShell yang menjalankan Import-Module -Name SQLPS, dan Anda ingin memanfaatkan fungsionalitas penyedia baru dan cmdlet baru, Anda harus mengubahnya menjadi Import-Module -Name SqlServer. Modul baru diinstal ke %ProgramFiles%\WindowsPowerShell\Modules\SqlServer folder. Dengan demikian, Anda tidak perlu memperbarui variabel $env:PSModulePath. Jika Anda memiliki skrip yang menggunakan modul versi pihak ketiga atau komunitas bernama SqlServer, gunakan parameter Awalan untuk menghindari tabrakan nama.

Disarankan untuk memulai skrip Anda dengan Import-Module SQLServer untuk menghindari masalah berdampingan jika modul SQLPS diinstal pada komputer yang sama.

Bagian ini berlaku untuk skrip yang dijalankan dari PowerShell dan bukan Agen SQL. Modul baru dapat digunakan dengan langkah-langkah pekerjaan Agen SQL menggunakan #NOSQLPS.

Komponen PowerShell SQL Server

Modul SqlServer dilengkapi dengan:

  • Penyedia PowerShell, yang memungkinkan mekanisme navigasi sederhana yang mirip dengan jalur sistem file. Anda dapat membangun jalur yang mirip dengan jalur sistem file, di mana drive dikaitkan dengan model objek manajemen SQL Server, dan simpul didasarkan pada kelas model objek. Anda kemudian dapat menggunakan perintah yang sudah dikenal seperti cd (alias untuk Set-Location) dan dir (alias untuk Get-ChildItem) untuk menavigasi jalur yang mirip dengan cara Anda menavigasi folder di jendela prompt perintah. Anda dapat menggunakan perintah lain, seperti ren (alias untuk Ganti Nama-Item) atau del (alias untuk Hapus-Item), untuk melakukan tindakan pada simpul di jalur.

  • Sekumpulan cmdlet yang mendukung tindakan seperti menjalankan skrip sqlcmd yang berisi pernyataan Transact-SQL atau XQuery.

  • Penyedia AS dan cmdlet, yang sebelum diinstal secara terpisah.

Versi SQL Server

Cmdlet SQL PowerShell dapat digunakan untuk mengelola instans Azure SQL Database, Azure Synapse Analytics, dan semua produk SQL Server yang didukung.

Pengidentifikasi SQL Server yang berisi karakter yang tidak didukung di jalur PowerShell

Cmdlet Encode-Sqlname (alias untuk ConvertTo-EncodedSqlName) dan Decode-Sqlname (alias untuk ConvertFrom-EncodedSqlName) membantu Anda menentukan pengidentifikasi SQL Server yang berisi karakter yang tidak didukung di jalur PowerShell. Untuk informasi selengkapnya, lihat Pengidentifikasi SQL Server di PowerShell.

Gunakan cmdlet Convert-UrnToPath untuk mengonversi Nama Sumber Daya Unik untuk objek Mesin Database ke jalur untuk penyedia PowerShell SQL Server. Untuk informasi selengkapnya, lihat Mengonversi URL ke Jalur Penyedia SQL Server.

Ekspresi Kueri dan Nama Sumber Daya Seragam

Ekspresi kueri adalah string yang menggunakan sintaksis yang mirip dengan XPath untuk menentukan serangkaian kriteria yang menghitung satu atau beberapa objek dalam hierarki model objek. Nama Sumber Daya Seragam (URN) adalah jenis string ekspresi kueri tertentu yang secara unik mengidentifikasi satu objek. Untuk informasi selengkapnya, lihat Ekspresi Kueri dan Nama Sumber Daya Seragam.

SQL Server Agent

Tidak ada perubahan pada modul yang digunakan oleh SQL Server Agent. Dengan demikian, pekerjaan SQL Server Agent, yang memiliki langkah-langkah pekerjaan jenis PowerShell menggunakan modul SQLPS. Untuk informasi selengkapnya, lihat Cara menjalankan PowerShell dengan SQL Server Agent. Namun, dimulai dengan SQL Server 2019, Anda dapat menonaktifkan SQLPS. Untuk melakukannya, pada baris pertama langkah pekerjaan jenis PowerShell, Anda dapat menambahkan #NOSQLPS, yang menghentikan Agen SQL memuat otomatis modul SQLPS. Ketika Anda melakukan ini, Pekerjaan Agen SQL Anda menjalankan versi PowerShell yang diinstal pada komputer, lalu Anda dapat menggunakan modul PowerShell lainnya yang Anda suka.

Memecahkan masalah SQLPS

Jika Anda melihat langkah-langkah pekerjaan agen (subsistem PowerShell) gagal dengan kesalahan berikut, bagian ini mungkin berguna dalam memecahkan masalah.

Langkah pekerjaan menerima kesalahan di baris 1 dalam skrip PowerShell. Baris yang sesuai adalah 'import-module SQLPS'. Perbaiki skrip dan jadwalkan ulang pekerjaan. Informasi kesalahan yang dikembalikan oleh PowerShell adalah: 'Modul 'SQLPS' yang ditentukan tidak dimuat karena tidak ada file modul yang valid yang ditemukan di direktori modul apa pun.

Modul SQLPS harus tersedia di variabel lingkungan PSModulePath. Menghapus instalasi SQL Server Management Directory 16.x dapat menghapus SQLPS dari PSModulePath. Untuk memeriksa nilai saat ini yang disimpan di PSModulePath, jalankan PowerShell berikut ini:

 $env:PSModulePath -split ";"

Jika jalur diatur, Anda akan melihat entri yang mirip C:\Program Files (x86)\Microsoft SQL Server\130\Tools\PowerShell\Modulesdengan . Jika jalur tidak diatur, temukan folder SQLPS di server Anda dan tambahkan ke nilai variabel lingkungan baik melalui PowerShell atau di Variabel Lingkungan Tingkat Lanjut>Properti>Sistem.

Modul SQLServer dengan SQL Agent

Jika Anda ingin menggunakan modul SqlServer di langkah Pekerjaan Agen SQL, Anda dapat menempatkan kode ini pada dua baris pertama skrip Anda.

#NOSQLPS
Import-Module -Name SqlServer

Referensi Cmdlet

Langkah berikutnya