Invoke-Sqlcmd
Menjalankan skrip yang berisi pernyataan yang didukung oleh utilitas SQL Server SQLCMD.
Sintaks
Invoke-Sqlcmd
[-ServerInstance <PSObject>]
[-Database <String>]
[-Encrypt <String>]
[-EncryptConnection]
[-Username <String>]
[-AccessToken <String>]
[-Password <String>]
[-Credential <PSCredential>]
[[-Query] <String>]
[-QueryTimeout <Int32>]
[-ConnectionTimeout <Int32>]
[-ErrorLevel <Int32>]
[-SeverityLevel <Int32>]
[-MaxCharLength <Int32>]
[-MaxBinaryLength <Int32>]
[-AbortOnError]
[-DedicatedAdministratorConnection]
[-DisableVariables]
[-DisableCommands]
[-HostName <String>]
[-ApplicationName <String>]
[-ApplicationIntent <ApplicationIntent>]
[-MultiSubnetFailover]
[-FailoverPartner <String>]
[-HostNameInCertificate <String>]
[-TrustServerCertificate]
[-NewPassword <String>]
[-Variable <PSObject>]
[-InputFile <String>]
[-OutputSqlErrors <Boolean>]
[-IncludeSqlUserErrors]
[-SuppressProviderContextWarning]
[-IgnoreProviderContext]
[-OutputAs <OutputType>]
[-StatisticsVariable <String>]
[-ProgressAction <ActionPreference>]
[<CommonParameters>]
Invoke-Sqlcmd
[-AccessToken <String>]
[[-Query] <String>]
[-QueryTimeout <Int32>]
[-ErrorLevel <Int32>]
[-SeverityLevel <Int32>]
[-MaxCharLength <Int32>]
[-MaxBinaryLength <Int32>]
[-AbortOnError]
[-DisableVariables]
[-DisableCommands]
[-Variable <PSObject>]
[-InputFile <String>]
[-OutputSqlErrors <Boolean>]
[-IncludeSqlUserErrors]
[-OutputAs <OutputType>]
-ConnectionString <String>
[-KeyVaultAccessToken <String>]
[-ManagedHsmAccessToken <String>]
[-StatisticsVariable <String>]
[-ProgressAction <ActionPreference>]
[<CommonParameters>]
Deskripsi
Cmdlet Invoke-Sqlcmd menjalankan skrip yang berisi bahasa dan perintah yang didukung oleh utilitas SQL Server SQLCMD.
Perintah yang didukung adalah pernyataan Transact-SQL dan subset sintaks XQuery yang didukung oleh mesin database.
Cmdlet ini juga menerima banyak perintah yang didukung secara asli oleh SQLCMD, seperti GO dan QUIT.
Cmdlet ini juga menerima variabel pembuatan skrip SQLCMD, seperti SQLCMDUSER. Secara default, cmdlet ini tidak mengatur variabel pembuatan skrip SQLCMD.
Cmdlet ini tidak mendukung penggunaan perintah yang terutama terkait dengan pengeditan skrip interaktif.
Perintah yang tidak didukung meliputi :!, :connect, :error, :out, :ed, :list, :listvar, :reset, :p erftrace, dan :serverlist.
Saat cmdlet ini dijalankan, tataan hasil pertama yang dikembalikan skrip ditampilkan sebagai tabel yang diformat.
Jika kumpulan hasil berikutnya berisi daftar kolom yang berbeda dari yang pertama, kumpulan hasil tersebut tidak ditampilkan.
Jika kumpulan hasil berikutnya setelah set pertama memiliki daftar kolom yang sama, barisnya ditambahkan ke tabel yang diformat yang berisi baris yang dikembalikan oleh tataan hasil pertama.
Anda dapat menampilkan output pesan SQL Server, seperti yang dihasilkan dari pernyataan SQL PRINT, dengan menentukan parameter Verbose.
Contoh
Contoh 1: Menyambungkan ke instans bernama dan menjalankan skrip
Invoke-Sqlcmd -Query "SELECT GETDATE() AS TimeOfQuery" -ServerInstance "MyComputer\MainInstance"
TimeOfQuery
-----------
9/21/2017 2:48:24 PM
Perintah ini tersambung ke instans bernama Mesin Database SQL di komputer dan menjalankan skrip Transact-SQL dasar.
Contoh 2: Memanggil perintah dalam file skrip dan menyimpan output dalam file teks
Invoke-Sqlcmd -InputFile "C:\ScriptFolder\TestSqlCmd.sql" | Out-File -FilePath "C:\ScriptFolder\TestSqlCmd.rpt"
Output sent to TestSqlCmd.rpt.
Perintah ini membaca file yang berisi pernyataan Transact-SQL dan perintah SQLCMD, menjalankan file, dan menulis output ke file lain.
File output mungkin berisi informasi kepemilikan, jadi Anda harus mengamankan file output dengan izin NTFS yang sesuai.
Contoh 3: Memanggil skrip dan meneruskan nilai variabel dari string
$StringArray = "MYVAR1='String1'", "MYVAR2='String2'"
Invoke-Sqlcmd -Query "SELECT `$(MYVAR1) AS Var1, `$(MYVAR2) AS Var2" -Variable $StringArray
Var1 Var2
---- ----
String1 String2
Perintah ini menggunakan array string karakter sebagai input ke parameter Variabel.
Array menentukan beberapa variabel SQLCMD.
Tanda $ dalam pernyataan SELECT yang mengidentifikasi variabel SQLCMD diloloskan menggunakan karakter back-tick (').
Contoh 4: Memanggil skrip dan meneruskan variabel dari mesin database SQL
Set-Location "SQLSERVER:\SQL\MyComputer\MainInstance"
PS SQLSERVER:\SQL\MyComputer\MainInstance> Invoke-Sqlcmd -Query "SELECT SERVERPROPERTY('MachineName') AS ComputerName" -ServerInstance (Get-Item .)
ComputerName
------------
MyComputer
Perintah ini menggunakan Set-Location untuk menavigasi ke jalur penyedia SQL ServerWindows PowerShell untuk instans SQL Database Engine.
Kemudian memanggil Get-Item untuk mengambil objek SQL Management Object Server untuk digunakan sebagai parameter ServerInstance dari Invoke-Sqlcmd.
Contoh 5: Menjalankan kueri dan menampilkan output verbose
Set-Location "SQLSERVER:\SQL\MyComputer\MainInstance"
Invoke-SqlCmd -Query "PRINT N'abc'" -Verbose
VERBOSE: abc
Perintah ini menggunakan parameter Windows PowerShellVerbose untuk mengembalikan output pesan dari perintah SQL PRINT.
Contoh 6: Memanggil perintah menggunakan string posisi sebagai input
Set-Location "SQLSERVER:\SQL\MyComputer\MainInstance\Databases\MyDatabase"
PS SQLSERVER:\SQL\MyComputer\MainInstance> Invoke-Sqlcmd "SELECT DB_NAME() AS DatabaseName"
WARNING: Using provider context. Server = MyComputer\MainInstance, Database = MyDatabase.
DatabaseName
------------
MyDatabase
Perintah ini menggunakan string posisi untuk menyediakan input ke parameter Kueri.
Ini juga menunjukkan bagaimana Invoke-Sqlcmd menggunakan jalur saat ini untuk mengatur konteks database ke MyDatabase.
Contoh 7: Mengambil data ke dalam objek Himpunan Data
$DS = Invoke-Sqlcmd -ServerInstance "MyComputer" -Query "SELECT ID, Item FROM MyDB.dbo.MyTable" -As DataSet
$DS.Tables[0].Rows | %{ echo "{ $($_['ID']), $($_['Item']) }" }
{ 10, AAA }
{ 20, BBB }
{ 30, CCC }
Perintah ini menggunakan parameter Sebagai DataSet untuk mengambil data ke dalam objek .Net System.Data.DataSet dan menyimpan hasilnya dalam variabel '$DS'. Objek dapat digunakan untuk pemrosesan lebih lanjut.
Contoh 8: Mendapatkan kumpulan kolom tertentu
$Tables = Invoke-Sqlcmd -ServerInstance "MyComputer" -Query "SELECT Item, id FROM MyDatabase.dbo.MyTable; SELECT GETDATE() AS T" -As DataTables
$Tables[0].Rows | %{ echo $_.ID }
$Tables[1].Rows | %{ echo $_.T.DayOfWeek }
10
20
30
Monday
Perintah pertama menggunakan parameter Sebagai DataTables untuk mengambil data ke dalam kumpulan objek .Net System.Data.DataTable. Perintah mendapatkan dua tabel dengan kumpulan kolom yang berbeda.
Setiap tabel dapat diproses satu per satu, berdasarkan skemanya sendiri.
Contoh 9: Mendapatkan kontrol penuh atas koneksi
Invoke-Sqlcmd -Query "SELECT COUNT(*) AS Count FROM MyTable" -ConnectionString "Data Source=MYSERVER;Initial Catalog=MyDatabase;Integrated Security=True;ApplicationIntent=ReadOnly"
Count
-----
127432
Perintah ini menggunakan parameter -ConnectionString untuk mendapatkan kontrol penuh atas koneksi yang dibuat cmdlet ini, alih-alih Invoke-Sqlcmd untuk membangun string koneksi berdasarkan parameter yang diteruskan pada baris perintah.
Ini berguna untuk properti yang kurang umum yang mungkin ingin Anda gunakan.
Contoh 10: Jalankan prosedur tersimpan dan ambil kesalahan SQL
$script_sp_with_errors = @'
CREATE PROCEDURE [dbo].[TestProcedure3]
AS
BEGIN
CREATE TABLE [dbo].[TestTable] (col INT NOT NULL);
INSERT INTO [dbo].[TestTable] VALUES (NULL); -- will cause an error
END
GO
'@
# Create a test database
Invoke-SqlCmd -ServerInstance MyServer -Query 'CREATE DATABASE TestDB'
# ... adds a stored procedure that has errors in it...
Invoke-SqlCmd -ServerInstance MyServer -Database 'TestDB' -Query $script_sp_with_errors
# ... executes the SP and collected the errors
Invoke-SqlCmd -ServerInstance MyServer -Database 'TestDB' -Query 'EXEC TestProcedure3' -OutputSqlErrors $true
Here's the output:
Invoke-SqlCmd : Cannot insert the value NULL into column 'col', table 'TestDB.dbo.TestTable'; column does not allow nulls. INSERT fails.
The statement has been terminated.
Msg 515, Level 16, State 2, Procedure TestProcedure3, Line 5.
At line:1 char:1
...
Perintah ini menggunakan parameter
Contoh 11: Menyambungkan ke Azure SQL Database (atau Instans Terkelola) menggunakan Token Akses
Import-Module SQLServer
Import-Module Az.Accounts -MinimumVersion 2.2.0
# Note: the sample assumes that you or your DBA configured the server to accept connections using
# that Service Principal and has granted it access to the database (in this example at least
# the SELECT permission).
### Obtain the Access Token: this will bring up the login dialog
Connect-AzAccount
$access_token = (Get-AzAccessToken -ResourceUrl https://database.windows.net).Token
# Now that we have the token, we use it to connect to the database 'mydb' on server 'myserver'
Invoke-Sqlcmd -ServerInstance myserver.database.windows.net -Database mydb -AccessToken $access_token`
-query 'select * from Table1'
Contoh 12: Menyambungkan ke Azure SQL Database (atau Instans Terkelola) menggunakan Perwakilan Layanan
Import-Module SQLServer
# Note: the sample assumes that you or your DBA configured the server to accept connections using
# that Service Principal and has granted it access to the database (in this example at least
# the SELECT permission).
$clientid = "enter application id that corresponds to the Service Principal" # Do not confuse with its display name
$tenantid = "enter the tenant ID of the Service Principal"
$secret = "enter the secret associated with the Service Principal"
$request = Invoke-RestMethod -Method POST `
-Uri "https://login.microsoftonline.com/$tenantid/oauth2/token"`
-Body @{ resource="https://database.windows.net/"; grant_type="client_credentials"; client_id=$clientid; client_secret=$secret }`
-ContentType "application/x-www-form-urlencoded"
$access_token = $request.access_token
# Now that we have the token, we use it to connect to the database 'mydb' on server 'myserver'
Invoke-Sqlcmd -ServerInstance myserver.database.windows.net -Database mydb -AccessToken $access_token`
-query 'select * from Table1'
Contoh 13: Menyambungkan ke Azure SQL Database (atau Instans Terkelola) menggunakan Identitas Terkelola yang Ditetapkan Sistem (SAMI)
Import-Module SQLServer
# Note: the sample assumes that you or your DBA configured the server to accept connections using
# that VM Identity you are running on and has granted it access to the database (in this
# example at least the SELECT permission).
Connect-AzAccount -Identity
$access_token = (Get-AzAccessToken -ResourceUrl https://database.windows.net).Token
# Now that we have the token, we use it to connect to the database 'mydb' on server 'myserver'
Invoke-Sqlcmd -ServerInstance myserver.database.windows.net -Database mydb -AccessToken $access_token `
-query 'select * from Table1'
Contoh 14: Menyambungkan ke Azure SQL Database (atau Instans Terkelola) menggunakan Identitas Terkelola yang Ditetapkan Pengguna (UAMI)
Import-Module SQLServer
# Note: the sample assumes that you or your DBA configured the server to accept connections using
# that VM Identity you are running on and has granted it access to the database (in this
# example at least the SELECT permission).
Connect-AzAccount -Identity -AccountId '<your-user-assigned-managed-identity-client-id>'
$access_token = (Get-AzAccessToken -ResourceUrl https://database.windows.net).Token
# Now that we have the token, we use it to connect to the database 'mydb' on server 'myserver'
Invoke-Sqlcmd -ServerInstance myserver.database.windows.net -Database mydb -AccessToken $access_token `
-query 'select * from Table1'
Contoh 15: Menyambungkan ke Grup Ketersediaan yang dikonfigurasi untuk perutean Read-Only menggunakan -ApplicationIntent
# In the following example:
# - MT_2009250511 is a listener for an AG configured for Read-Only Routing (port 5555)
# - AGDB_2_1 is the DB in the AG
# - VLM00226138 is the primary replica configured to only allow ReadWrite connections
# - VLM00226137 is the secondary replica
#
Invoke-Sqlcmd -ServerInstance "MT_2009250511,5555" -Database AGDB_2_1 `
-HostName "PowershellBox1" -ApplicationName "ReadWrite" -ApplicationIntent ReadWrite `
-Query "select HOST_NAME() AS HostName, APP_NAME() AS ApplicationIntent, @@SERVERNAME AS ServerName"
Invoke-Sqlcmd -ServerInstance "MT_2009250511,5555" -Database AGDB_2_1 `
-HostName "PowershellBox2" -ApplicationName "ReadOnly" -ApplicationIntent ReadOnly `
-Query "select HOST_NAME() AS HostName, APP_NAME() AS ApplicationIntent, @@SERVERNAME AS ServerName"
# When you run the 2 cmdlets above, the output is going to be something like this:
#
# HostName ApplicationIntent ServerName
# -------- ----------------- ----------
# PowershellBox1 ReadWrite VLM00226138
#
# HostName ApplicationIntent ServerName
# -------- ----------------- ----------
# PowershellBox2 ReadOnly VLM00226137
yang menunjukkan bahwa, tergantung pada nilai parameter -ApplicationIntent
, koneksi dirutekan ke server yang berbeda di AG. Kebetulan, amati penggunaan parameter -ApplicationName
dan -HostName
untuk membedakan dua hasil secara visual: ini adalah teknik umum yang dapat digunakan untuk melacak koneksi dan niatnya, di luar contoh -ApplicationIntent yang diilustrasikan di sini.
Contoh 16: Mengambil statistik koneksi melalui parameter -StatisticsVariable
Import-Module SQLServer
Invoke-Sqlcmd -ServerInstance localhost -StatisticsVariable stats `
-Query 'CREATE TABLE #Table (ID int); INSERT INTO #Table VALUES(1), (2); INSERT INTO #Table VALUES(3); SELECT * FROM #Table'
Write-Host "Number of rows affected......: $($stats.IduRows)"
Write-Host "Number of insert statements..: $($stats.IduCount)"
Write-Host "Number of select statements..: $($stats.SelectCount)"
Write-Host "Total execution time.........: $($stats.ExecutionTime)ms"
# When you run the code fragment above, is going to be something like this:
#
# Number of rows affected......: 3
# Number of insert statements..: 2
# Number of select statements..: 1
# Total execution time.........: 5ms
Contoh ini menunjukkan cara menggunakan parameter -StatisticsVariable
untuk mengambil informasi tentang koneksi, pernyataan yang dijalankan, dan waktu eksekusi saat menjalankan beberapa T-SQL yang membuat tabel sementara, menyisipkan beberapa nilai, dan akhirnya mengeluarkan pilih untuk mendapatkan semua baris yang disisipkan.
Catatan: ketika kueri yang sama dijalankan terhadap beberapa server (misalnya dengan memilah nama server melalui cmdlet), StatisticsVariable
mengambil array statistik, satu untuk setiap koneksi. Hasil kemudian dapat diagregasi dengan menggunakan, misalnya, ($stats.IduRows | Measure-Object -Sum).Sum
.
Lihat Statistik Penyedia untuk SQL Server untuk informasi selengkapnya tentang statistik yang tersedia.
Contoh 17: Jalankan kueri yang mendekripsi data yang diambil dari kolom yang dienkripsi menggunakan Always Encrypted. Asumsikan kunci master kolom disimpan dalam brankas kunci di Azure Key Vault.
# Connect to Azure account.
Import-Module Az.Accounts -MinimumVersion 2.2.0
Connect-AzAccount
# Obtain an access token for key vaults.
$keyVaultAccessToken = (Get-AzAccessToken -ResourceUrl https://vault.azure.net).Token
# Pass the token to the cmdlet, so that it can use it to authenticate to Azure when decrypting data protected with Always Encrypted.
$connString = 'Data Source=MYSERVER;Initial Catalog=MyDatabase;Integrated Security=True;ApplicationIntent=ReadOnly;Column Encryption Setting=Enabled'
Invoke-Sqlcmd -Query 'SELECT COUNT(*) AS Count FROM MyTable' -ConnectionString $connString -KeyVaultAccessToken $keyVaultAccessToken
Parameter
-AbortOnError
Menunjukkan bahwa cmdlet ini menghentikan perintah SQL Server dan mengembalikan tingkat kesalahan ke variabel ERRORLEVEL Windows PowerShell jika cmdlet ini mengalami kesalahan.
Tingkat kesalahan yang dikembalikan adalah 1 jika kesalahan memiliki tingkat keparahan lebih tinggi dari 10, dan tingkat kesalahan adalah 0 jika kesalahan memiliki tingkat keparahan 10 atau kurang.
Jika parameter ErrorLevel juga ditentukan, cmdlet ini mengembalikan 1 hanya jika tingkat keparahan pesan kesalahan juga sama dengan atau lebih tinggi dari nilai yang ditentukan untuk ErrorLevel.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-AccessToken
Token akses yang digunakan untuk mengautentikasi ke SQL Server, sebagai alternatif untuk pengguna/kata sandi atau Autentikasi Windows.
Ini dapat digunakan, misalnya, untuk menyambungkan ke SQL Azure DB
dan SQL Azure Managed Instance
menggunakan Service Principal
atau Managed Identity
(lihat referensi di bagian bawah halaman ini)
Dalam skenario umum, parameter ini diperoleh dengan sesuatu seperti (Get-AzAccessToken -ResourceUrl https://database.windows.net).Token
(memerlukan modul Az.Account)
Jangan tentukan
Jenis: | String |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-ApplicationIntent
Jenis beban kerja aplikasi saat menyambungkan ke database di Grup Ketersediaan SQL Server.
Nilai yang diizinkan adalah: ReadOnly dan ReadWrite.
Jenis: | ApplicationIntent |
Nilai yang diterima: | ReadWrite, ReadOnly |
Position: | Named |
Nilai default: | ReadWrite |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-ApplicationName
Nama aplikasi yang terkait dengan koneksi.
Jenis: | String |
Position: | Named |
Nilai default: | .NET SqlClient Data Provider |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-ConnectionString
Menentukan string koneksi untuk menyambungkan ke server.
Jenis: | String |
Position: | Named |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | False |
Terima karakter wildcard: | False |
-ConnectionTimeout
Menentukan jumlah detik ketika cmdlet ini kehabisan waktu jika tidak berhasil tersambung ke instans Mesin Database. Nilai batas waktu harus berupa nilai bilangan bulat antara 0 dan 65534. Jika 0 ditentukan, upaya koneksi tidak kehabisan waktu.
Jenis: | Int32 |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Credential
Objek PSCredential yang bidang Nama Pengguna dan Kata Sandinya akan digunakan untuk menyambungkan ke instans SQL.
Jenis: | PSCredential |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Database
Menentukan nama database. Cmdlet ini tersambung ke database ini dalam instans yang ditentukan dalam parameter ServerInstance.
Jika parameter Database tidak ditentukan, database yang digunakan bergantung pada apakah jalur saat ini menentukan folder SQLSERVER:\SQL dan nama database. Jika jalur menentukan folder SQL dan nama database, cmdlet ini tersambung ke database yang ditentukan dalam jalur. Jika jalur tidak didasarkan pada folder SQL, atau jalur tidak berisi nama database, cmdlet ini tersambung ke database default untuk ID masuk saat ini. Jika Anda menentukan sakelar parameter IgnoreProviderContext, cmdlet ini tidak mempertimbangkan database apa pun yang ditentukan di jalur saat ini, dan menyambungkan ke database yang didefinisikan sebagai default untuk ID masuk saat ini.
Jenis: | String |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-DedicatedAdministratorConnection
Menunjukkan bahwa cmdlet ini menggunakan Koneksi Administrator Khusus (DAC) untuk menyambungkan ke instans Mesin Database.
DAC digunakan oleh administrator sistem untuk tindakan seperti instans pemecahan masalah yang tidak akan menerima koneksi standar baru.
Instans harus dikonfigurasi untuk mendukung DAC.
Jika DAC tidak diaktifkan, cmdlet ini melaporkan kesalahan dan tidak akan berjalan.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-DisableCommands
Menunjukkan bahwa cmdlet ini menonaktifkan beberapa fitur sqlcmd yang mungkin membahayakan keamanan saat dijalankan dalam file batch.
Ini mencegah variabel Windows PowerShell diteruskan ke skrip Invoke-Sqlcmd.
Skrip startup yang ditentukan dalam variabel pembuatan skrip SQLCMDINI tidak dijalankan.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-DisableVariables
Menunjukkan bahwa cmdlet ini mengabaikan variabel pembuatan skrip sqlcmd. Ini berguna ketika skrip berisi banyak pernyataan INSERT yang mungkin berisi string yang memiliki format yang sama dengan variabel, seperti $(variable_name).
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Encrypt
Jenis enkripsi yang akan digunakan saat menyambungkan ke SQL Server.
Nilai ini memetakan ke properti Encrypt
SqlConnectionEncryptOption
pada objek SqlConnection driver Microsoft.Data.SqlClient.
Ketika tidak ditentukan, nilai defaultnya adalah Mandatory
.
Parameter ini baru dalam v22 modul. Untuk detail selengkapnya, lihat
Strict Connection Encryption
di bawah Tautan Terkait.
Jenis: | String |
Nilai yang diterima: | Mandatory, Optional, Strict |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-EncryptConnection
Menunjukkan bahwa cmdlet ini menggunakan enkripsi Secure Sockets Layer (SSL/TLS) untuk koneksi ke instans Mesin Database yang ditentukan dalam parameter ServerInstance.
Mulai dari modul v22, parameter ini tidak digunakan lagi. Koneksi dienkripsi secara default. Silakan, pertimbangkan untuk menggunakan parameter -Encrypt baru sebagai gantinya. Untuk detail selengkapnya, lihat
Strict Connection Encryption
di bawah Tautan Terkait.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-ErrorLevel
Menentukan bahwa cmdlet ini hanya menampilkan pesan kesalahan yang tingkat keparahannya sama dengan atau lebih tinggi dari nilai yang ditentukan. Semua pesan kesalahan ditampilkan jika parameter ini tidak ditentukan atau diatur ke 0. Tingkat keparahan kesalahan Mesin Database berkisar antara 1 hingga 24.
Jenis: | Int32 |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-FailoverPartner
Nama atau alamat server mitra yang akan disambungkan jika server utama tidak berfungsi.
Jenis: | String |
Position: | Named |
Nilai default: | "" |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-HostName
Menentukan nama stasiun kerja. Nama stasiun kerja dilaporkan oleh prosedur tersimpan sistem sp_who dan di kolom nama host tampilan katalog sys.processes. Jika parameter ini tidak ditentukan, defaultnya adalah nama komputer tempat Invoke-Sqlcmd dijalankan. Parameter ini dapat digunakan untuk mengidentifikasi sesi Invoke-Sqlcmd yang berbeda.
Jenis: | String |
Alias: | WorkstationID |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-HostNameInCertificate
Nama host yang akan digunakan dalam memvalidasi sertifikat SQL Server TLS/SSL. Anda harus meneruskan parameter ini jika instans SQL Server Anda diaktifkan untuk Enkripsi Paksa dan Anda ingin terhubung ke instans menggunakan nama host/nama pendek. Jika parameter ini dihilangkan, maka meneruskan Nama Domain yang Sepenuhnya Memenuhi Syarat (FQDN) ke -ServerInstance diperlukan untuk terhubung ke instans SQL Server yang diaktifkan untuk Enkripsi Paksa.
Parameter ini baru dalam v22 modul. Untuk detail selengkapnya, lihat
Strict Connection Encryption
di bawah Tautan Terkait.
Jenis: | String |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-IgnoreProviderContext
Menunjukkan bahwa cmdlet ini mengabaikan konteks database yang ditetapkan oleh jalur SQLSERVER:\SQL saat ini. Jika parameter Database tidak ditentukan, cmdlet ini menggunakan database default untuk ID masuk saat ini atau akun Windows.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-IncludeSqlUserErrors
Menunjukkan bahwa cmdlet ini mengembalikan kesalahan skrip pengguna SQL yang diabaikan secara default. Jika parameter ini ditentukan, cmdlet ini cocok dengan perilaku default utilitas sqlcmd.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-InputFile
Menentukan file yang akan digunakan sebagai input kueri ke cmdlet ini. File dapat berisi pernyataan Transact-SQL, pernyataan XQuery, dan perintah sqlcmd dan variabel pembuatan skrip. Tentukan jalur lengkap ke file. File diharapkan dikodekan menggunakan UTF-8.
Anda seharusnya hanya menjalankan skrip dari sumber tepercaya. Pastikan semua skrip input diamankan dengan izin NTFS yang sesuai.
Jenis: | String |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-KeyVaultAccessToken
Menentukan token akses untuk brankas kunci di Azure Key Vault. Gunakan parameter ini jika ada kolom yang akan dikueri dilindungi dengan Always Encrypted menggunakan kunci master kolom yang disimpan dalam brankas kunci di Azure Key Vault. Atau, Anda dapat mengautentikasi ke Azure dengan Add-SqlAzureAuthenticationContext sebelum memanggil cmdlet ini.
Jenis: | String |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-ManagedHsmAccessToken
Menentukan token akses untuk HSM terkelola di Azure Key Vault. Gunakan parameter ini jika ada kolom yang akan dikueri dilindungi dengan Always Encrypted menggunakan kunci master kolom yang disimpan dalam HSM terkelola di Azure Key Vault. Atau, Anda dapat mengautentikasi ke Azure dengan Add-SqlAzureAuthenticationContext sebelum memanggil cmdlet ini.
Jenis: | String |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-MaxBinaryLength
Menentukan jumlah maksimum byte yang dikembalikan untuk kolom dengan jenis data string biner, seperti biner dan varbinary. Nilai defaultnya adalah 1.024 byte.
Jenis: | Int32 |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-MaxCharLength
Menentukan jumlah maksimum karakter yang dikembalikan untuk kolom dengan karakter atau jenis data Unicode, seperti karakter, nchar, varchar, dan nvarchar. Nilai defaultnya adalah 4.000 karakter.
Jenis: | Int32 |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-MultiSubnetFailover
Jika aplikasi Anda tersambung ke Grup Ketersediaan AlwaysOn (AG) pada subnet yang berbeda, meneruskan parameter ini memberikan deteksi dan koneksi yang lebih cepat ke server aktif (saat ini).
Catatan: meneruskan -MultiSubnetFailover tidak diperlukan dengan .NET Framework 4.6.1 atau versi yang lebih baru.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-NewPassword
Menentukan kata sandi baru untuk ID masuk Autentikasi SQL Server. Cmdlet ini mengubah kata sandi lalu keluar. Anda juga harus menentukan parameter Nama Pengguna dan Kata Sandi, dengan Kata Sandi yang menentukan kata sandi saat ini untuk masuk.
Jenis: | String |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-OutputAs
Menentukan jenis hasil yang didapat cmdlet ini.
Jika Anda tidak menentukan nilai untuk parameter ini, cmdlet mengatur nilai ke DataRows.
Jenis: | OutputType |
Alias: | As |
Nilai yang diterima: | DataSet, DataTables, DataRows |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-OutputSqlErrors
Menunjukkan bahwa cmdlet ini menampilkan pesan kesalahan dalam output Invoke-Sqlcmd.
Jenis: | Boolean |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Password
Menentukan kata sandi untuk ID masuk Autentikasi SQL Server yang ditentukan dalam parameter Nama Pengguna. Kata sandi peka huruf besar/kecil. Jika memungkinkan, gunakan Autentikasi Windows. Jangan gunakan kata sandi kosong, jika memungkinkan gunakan kata sandi yang kuat.
Jika Anda menentukan parameter Kata Sandi diikuti oleh kata sandi Anda, kata sandi akan terlihat oleh siapa pun yang dapat melihat monitor Anda.
Jika Anda membuat kode Kata Sandi diikuti dengan kata sandi Anda dalam skrip .ps1, siapa pun yang membaca file skrip akan melihat kata sandi Anda.
Tetapkan izin NTFS yang sesuai ke file untuk mencegah pengguna lain dapat membaca file.
Jenis: | String |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-ProgressAction
Menentukan bagaimana PowerShell merespons pembaruan kemajuan yang dihasilkan oleh skrip, cmdlet, atau penyedia, seperti bilah kemajuan yang dihasilkan oleh cmdlet Write-Progress. cmdlet Write-Progress membuat bilah kemajuan yang memperlihatkan status perintah.
Jenis: | ActionPreference |
Alias: | proga |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Query
Menentukan satu atau beberapa kueri yang dijalankan cmdlet ini. Kueri dapat berupa pernyataan Transact-SQL atau XQuery, atau perintah sqlcmd. Beberapa kueri yang dipisahkan oleh titik koma dapat ditentukan. Jangan tentukan pemisah sqlcmd GO. Lolos dari tanda kutip ganda yang disertakan dalam string. Pertimbangkan untuk menggunakan pengidentifikasi kurung seperti [MyTable] alih-alih pengidentifikasi yang dikutip seperti "MyTable".
Jenis: | String |
Position: | 0 |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-QueryTimeout
Menentukan jumlah detik sebelum waktu kueri habis. Jika nilai batas waktu tidak ditentukan, kueri tidak kehabisan waktu. Batas waktu harus berupa nilai bilangan bulat antara 1 dan 65535.
Jenis: | Int32 |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-ServerInstance
Menentukan string karakter atau objek SQL Server Management Objects (SMO) yang menentukan nama instans Mesin Database. Untuk instans default, hanya tentukan nama komputer: MyComputer. Untuk instans bernama, gunakan format ComputerName\InstanceName.
Jenis: | PSObject |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | True |
Terima karakter wildcard: | False |
-SeverityLevel
Menentukan batas bawah untuk tingkat keparahan pesan kesalahan cmdlet ini kembali ke variabel ERRORLEVEL Windows PowerShell.
Cmdlet ini mengembalikan tingkat keparahan tertinggi dari pesan kesalahan yang dihasilkan oleh kueri yang dijalankannya, asalkan tingkat keparahan sama dengan atau lebih tinggi dari yang ditentukan dalam parameter SeverityLevel.
Jika SeverityLevel tidak ditentukan atau diatur ke 0, cmdlet ini mengembalikan 0 ke ERRORLEVEL.
Tingkat keparahan pesan kesalahan Mesin Database berkisar antara 1 hingga 24.
Cmdlet ini tidak melaporkan tingkat keparahan untuk pesan informasi yang memiliki tingkat keparahan 10
Jenis: | Int32 |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-StatisticsVariable
Tentukan nama variabel PowerShell yang akan diberi statistik run-time SQL Server saat cmdlet dijalankan.
Penggunaan umum untuk parameter ini adalah untuk menangkap ExecutionTime
(jumlah waktu kumulatif (dalam milidetik) yang telah dihabiskan penyedia untuk memproses cmdlet), atau IduRows
(jumlah total baris yang terpengaruh oleh pernyataan INSERT, DELETE, dan UPDATE).
Untuk detail selengkapnya, lihat Statistik Penyedia untuk SQL Server.
Jenis: | String |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-SuppressProviderContextWarning
Menunjukkan bahwa cmdlet ini menekan peringatan bahwa cmdlet ini telah digunakan dalam konteks database dari pengaturan jalur SQLSERVER:\SQL saat ini untuk menetapkan konteks database untuk cmdlet.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-TrustServerCertificate
Menunjukkan apakah saluran akan dienkripsi saat melewati rantai sertifikat untuk memvalidasi kepercayaan.
Parameter ini baru dalam v22 modul. Untuk detail selengkapnya, lihat
Strict Connection Encryption
di bawah Tautan Terkait.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Username
Menentukan ID masuk untuk membuat koneksi Autentikasi SQL Server ke instans Mesin Database.
Kata sandi harus ditentukan melalui parameter Kata Sandi.
Jika Nama Pengguna dan Kata Sandi tidak ditentukan, cmdlet ini mencoba koneksi Autentikasi Windows menggunakan akun Windows yang menjalankan sesi Windows PowerShell. Jika memungkinkan, gunakan Autentikasi Windows.
Jenis: | String |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Variable
Menentukan sekumpulan variabel skrip sqlcmd untuk digunakan dalam skrip sqlcmd, dan mengatur nilai untuk variabel.
Gunakan array Windows PowerShell untuk menentukan beberapa variabel dan nilainya; atau, gunakan Hashtable
di mana kunci mewakili nama variabel dan nilai nilai variabel.
Saat menggunakan array, nilai parameter dipangkas. Perilaku ini disimpan di v22 modul untuk kompatibilitas mundur dengan v21. Disarankan untuk tidak mengandalkan perilaku ini, yang dapat berubah dalam versi utama modul di masa mendatang.
Parameter jenis
Hashtable
hanya tersedia di v22+ modul.
Jenis: | PSObject |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
Input
System.Management.Automation.PSObject
Output
System.Object