Invoke Sqlcmd cmdlet'i
Invoke-Sqlcmdolan bir SQL Serverdillerde ifadeler içeren komut dosyalarını çalıştırır cmdlet ( Transact-SQL ve XQuery) ve tarafından desteklenen komutlar sqlcmdyarar.
Çağırma Sqlcmd kullanma
Invoke-SqlcmdCmdlet çalıştırmak sağlar, sqlcmdkomut dosyaları Windows PowerShell ortamında. Ne sen-ebilmek yapmak-e ile çok sqlcmdda yapılabilir kullanarak Invoke-Sqlcmd.
Bu arama Invoke-Sqlcmd-e belirtmeye benzer basit bir sorgu yürütmek için örnek olduğunu sqlcmdile -Qve -Sseçenekleri:
Invoke-Sqlcmd -Query "SELECT GETDATE() AS TimeOfQuery;" -ServerInstance "MyComputer\MyInstance"
Invoke-Sqlcmd -Query "SELECT GETDATE() AS TimeOfQuery;" -ServerInstance "MyComputer\MyInstance"
Bu bir örnektir arama Invoke-Sqlcmd, bu belirtme için benzer bir girdi dosyasını belirtme ve çıktıyı bir dosyaya boru sqlcmdile -ive -oseçenekleri:
Invoke-Sqlcmd -InputFile "C:\MyFolder\TestSQLCmd.sql" | Out-File -filePath "C:\MyFolder\TestSQLCmd.rpt"
Invoke-Sqlcmd -InputFile "C:\MyFolder\TestSQLCmd.sql" | Out-File -filePath "C:\MyFolder\TestSQLCmd.rpt"
Birden fazla geçmesine bir Windows PowerShell kullanarak bir örnek sqlcmdkomut dosyası değişkenleri için Invoke-Sqlcmd. "$" karakter tanımlayan sqlcmdkomut dosyası değişkenleri select deyimi içinde kaçtı PowerShell geri-kene kullanarak "'" çıkış karakteri:
$MyArray = "MyVar1 = 'String1'", "MyVar2 = 'String2'"
Invoke-Sqlcmd -Query "SELECT `$(MyVar1) AS Var1, `$(MyVar2) AS Var2;" -Variable $MyArray
$MyArray = "MyVar1 = 'String1'", "MyVar2 = 'String2'"
Invoke-Sqlcmd -Query "SELECT `$(MyVar1) AS Var1, `$(MyVar2) AS Var2;" -Variable $MyArray
Bir örnek kullanarak SQL Serverörneğine gitmek Windows PowerShell sağlayıcısı Veritabanı Altyapısıve sonra Windows PowerShell kullanarak Get-Itemörneği ve kendisine geçen smo sunucu nesnesini almak için Invoke-Sqlcmd:
Set-Location SQLSERVER:\SQL\MyComputer\MyInstance
Invoke-Sqlcmd -Query "SELECT GETDATE() AS TimeOfQuery;" -ServerInstance (Get-Item .)
Set-Location SQLSERVER:\SQL\MyComputer\MyInstance
Invoke-Sqlcmd -Query "SELECT GETDATE() AS TimeOfQuery;" -ServerInstance (Get-Item .)
- Query parametresi ve konumsal olarak adlandırılması gerekmez. İlk dizgesi için geçirilen Invoke-Sqlcmd: 's isimsiz, It - sorgu parametresi olarak kabul edilir.
Invoke-Sqlcmd "SELECT GETDATE() AS TimeOfQuery;" -ServerInstance "MyComputer\MyInstance"
Invoke-Sqlcmd "SELECT GETDATE() AS TimeOfQuery;" -ServerInstance "MyComputer\MyInstance"
Çağırma Sqlcmd bağlamında yolu
Eğer sen yapmak değil kullanma - veritabanı parametresi veritabanı bağlamı Invoke Sqlcmd cmdlet'i etkin olduğunda yolu tarafından ayarlanır denir.
Yol |
Veritabanı içerik |
---|---|
sqlserver farklı bir sürücü ile başlar: |
Yerel bilgisayardaki varsayılan örneğinde oturum açma Kımlığı için varsayılan veritabanı. |
SQLSERVER |
Yerel bilgisayardaki varsayılan örneğinde oturum açma Kımlığı için varsayılan veritabanı. |
SQLServer:\SQL\ComputerName |
Belirtilen bilgisayardaki varsayılan örneğinde oturum açma Kımlığı için varsayılan veritabanı. |
SQLServer:\SQL\ComputerName\InstanceName |
Belirtilen bilgisayarda belirtilen örneğinde oturum açma Kımlığı için varsayılan veritabanı. |
SQLServer:\SQL\ComputerName\InstanceName\Databases |
Belirtilen bilgisayarda belirtilen örneğinde oturum açma Kımlığı için varsayılan veritabanı. |
SQLServer:\SQL\ComputerName\InstanceName\Databases\DatabaseName |
Belirtilen veritabanı belirtilen bilgisayarda belirtilen örneği. Bu veritabanı tabloları ve sütunları düğümünü belirten bir yol gibi uzun yollar için de geçerlidir. |
Örneğin, varsayılan veritabanı için yerel bilgisayardaki varsayılan örneğine Windows hesabınızda olduğu varsayılmaktadır master. Sonra aşağıdaki komutları döneceğini master:
Set-Location SQLSERVER:\SQL
Invoke-Sqlcmd "SELECT DB_NAME() AS DatabaseName;"
Set-Location SQLSERVER:\SQL
Invoke-Sqlcmd "SELECT DB_NAME() AS DatabaseName;"
Aşağıdaki komutlar döneceğini AdventureWorks2012 :
Set-Location SQLSERVER:\SQL\MyComputer\DEFAULT\Databases\AdventureWorks2012\Tables\Person.Person
Invoke-Sqlcmd "SELECT DB_NAME() AS DatabaseName;"
Set-Location SQLSERVER:\SQL\MyComputer\DEFAULT\Databases\AdventureWorks2012\Tables\Person.Person
Invoke-Sqlcmd "SELECT DB_NAME() AS DatabaseName;"
Yol veritabanı içeriği kullandığında Invoke-Sqlcmd bir uyarı sağlar. Uyarı iletisini devre dışı bırakmak için - SuppressProviderContextWarning parametresini kullanabilirsiniz. Invoke Sqlcmd varsayılan veritabanı oturum açma için her zaman kullanmak için söylemek - IgnoreProviderContext parametresini kullanabilirsiniz.
Invoke Sqlcmd sqlcmd yardımcı programı karşılaştırma
Invoke-Sqlcmdbirçok kullanarak çalıştırılabilir komut dosyalarını çalıştırmak için kullanılabilecek sqlcmdyarar. Ancak, Invoke-Sqlcmdbuyurmak-e sevketmek çevre farklı bir Windows PowerShell ortamında çalışır, sqlcmdin. çalıştırın Davranış Invoke-Sqlcmdbir Windows PowerShell ortamında çalışmak üzere değiştirilmiş olabilir.
Tüm sqlcmdkomutları içinde uygulanan Invoke-Sqlcmd. Commands that are not implemented include the following: :!!, :connect, :error, :out, :ed, :list, :listvar, :reset, :perftrace, and :serverlist.
Invoke-Sqlcmdbaşlatılmaz sqlcmdçevre ya da komut dosyası değişkenleri sqlcmddbname ya da SQLCMDWORKSTATION gibi.
Invoke-SqlcmdWindows PowerShell belirtmedikçe, Mesajlar, PRINT deyimleri çıktısı gibi görüntülenmez -Verbosegenel parametre. Örneğin:
Invoke-Sqlcmd -Query "PRINT N'abc';" -Verbose
Invoke-Sqlcmd -Query "PRINT N'abc';" -Verbose
Tüm sqlcmdparametreleri PowerShell ortamında ihtiyaç vardır. Örneğin, Windows PowerShell cmdlets, tüm çıktı biçimleri çok sqlcmdparametreleri biçimlendirme seçeneklerini belirtme are not implemented in Invoke-Sqlcmd. Follwoing tablo arasındaki ilişkiyi gösterir Invoke-Sqlcmdparametreleri ve sqlcmdseçenekleri:
Açıklama |
Sqlcmd seçeneği |
Çağırma Sqlcmd parametresi |
---|---|---|
Sunucu ve örnek adı. |
-S |
-ServerInstance |
İlk veritabanını kullanın. |
-d |
-Veritabanı |
Belirtilen sorgu ve çıkış çalıştırın. |
-Q |
-Query |
SQL ServerKimlik doğrulaması oturum açma kimliği |
-U |
-Kullanıcı adı |
SQL ServerKimlik doğrulaması parola. |
-P |
-Parola |
Değişken tanımı. |
-v |
-Değişken |
Sorgu zaman aşımı aralığı. |
-t |
-QueryTimeout |
Hata üzerinde çalışmıyor |
-b |
-AbortOnError |
Adanmış yönetici bağlantısı. |
-A |
-DedicatedAdministratorConnection |
Etkileşimli komutları, başlangıç komut dosyası ve ortam değişkenleri devre dışı bırakın. |
-X |
-DisableCommands |
Değişken değiştirme devre dışı bırakın. |
-x |
-DisableVariables |
Rapor için en düşük önem düzeyi. |
-V |
-SeverityLevel |
Rapor için en az hata düzeyi. |
-m |
-ErrorLevel |
Oturum açma zaman aşımı aralığı. |
-l |
-ConnectionTimeout |
Hostname. |
-H |
-HbostName |
Parola değiştirme ve çıkış. |
-Z |
-YeniParola |
Bir sorgu içeren giriş dosyası |
-i |
-GirdiDosyası |
En fazla uzunluğu karakter çıktı. |
-w |
-MaxCharLength |
İkili çıktı en fazla uzunluğu. |
-w |
-MaxBinaryLength |
ssl şifrelemesi kullanarak bağlan. |
Parametre yok |
-EncryptConnection |
Hatalarını görüntüle |
Parametre yok |
-OutputSqlErrors |
Stderr iletileri çıktı. |
-r |
Parametre yok |
İstemcinin bölgesel ayarları kullan |
-R |
Parametre yok |
Belirtilen sorgu çalıştırmak ve çalışmaya devam eder. |
-q |
Parametre yok |
Çıktı verileri için kullanılacak kod sayfası. |
-f |
Parametre yok |
Parola değiştirme ve çalışır durumda kalması |
-z |
Parametre yok |
Paket boyutu |
-a |
Parametre yok |
Sütun ayırıcı |
-s |
Parametre yok |
Denetim çıkış üstbilgileri |
-h |
Parametre yok |
Denetim karakterleri belirleme |
-k |
Parametre yok |
Sabit uzunlukta ekran genişliği |
-Y |
Parametre yok |
Değişken uzunlukta ekran genişliği |
-y |
Parametre yok |
Yankı giriş |
-e |
Parametre yok |
Teklif edilen tanımlayıcıları etkinleştir |
-BEN |
Parametre yok |
Sondaki boşlukları kaldırma |
-W |
Parametre yok |
Liste örnekleri |
-L |
Parametre yok |
Unicode biçiminde çıktı |
-u |
Parametre yok |
İstatistiklerini yazdır |
-p |
Parametre yok |
Komut end |
-c |
Parametre yok |
Windows kimlik doğrulaması kullanarak bağlan |
-E |
Parametre yok |