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

Ayrıca bkz.

Başvuru

Sqlcmd yardımcı programı

Kavramlar

Veritabanı altyapısı cmdlet'leri kullanın

Sqlcmd yardımcı programını kullanın