/ / Invoke-SqlCmd vs .Net Framework na podstawie polecenia Sql Server - powershell-v2.0

Invoke-SqlCmd vs .Net Framework na podstawie polecenia Sql Server - powershell-v2.0

Właśnie zacząłem dostawać moje stopy mokre z interakcją z SQL Serwerem używającym PowerShell i dostałem to zapytanie:

Do wykonywania dowolnej operacji bazy danych serwera sql, używanie obiektów opartych na architekturze .net jest moim preferowanym wyborem głównie z tego powodu, że pochodzę z tła C #. Na przykład:

$sqlCommand = New-Object System.Data.SqlClient.SqlCommand

Jednakże odkryłem, że możemy również użyć polecenia cmdlet Invoke-SqlCmd dostępnego w SqlServerCmdletSnapin100. Tak jak:

Add-PSSnapin SqlServerCmdletSnapin100
Set-Location SQLSERVER:sqlDatabaseInstancedatabasesTestDatabase
Invoke-SqlCmd -Query "SELECT * FROM [File]" -User "UserName" -Password "UserPassword"

Zastanawiasz się, dlaczego warto skorzystać z Invoke-SqlCmd zamiast obiektów opartych na architekturze .net?

Czy Invoke-SqlCmd został udostępniony przez PowerShell, ponieważ niektóre populacje nie znają platformy .net.
Lub
Czy są jakieś specjalne funkcje oferowane przez Invoke-SqlCmd, z których musimy go używać.

Proszę przewodnika.

Odpowiedzi:

2 dla odpowiedzi № 1

Invoke-SqlCmd został udostępniony przezpowershell przez snapins, nie domyślnie. Wystarczy tylko wywołać skrypt sqlcmd.exe, który istniał przed wersją powershell, i był używany do wysyłania poleceń sql za pośrednictwem cmd. Teraz, gdy mamy bezpośredni dostęp do .Net, nie potrzebujemy tego.Nie ma nic, co Invoke-sqlcmd może zrobić, czego nie możesz zrobić z .Net, SqlClient zawsze będzie lepszym wyborem IMO, ponieważ jest szybszy i "Nigdy nie dostaniesz tego" innego zachowania ", o którym wspomina Microsoft.

http://technet.microsoft.com/en-us/library/ms162773.aspx

SQL Server Management Studio używa Microsoft.NET Framework SqlClient do wykonania w trybie zwykłym i SQLCMD w edytorze zapytań. Kiedy sqlcmd jest uruchamiany z wiersza poleceń, sqlcmd używa sterownika ODBC. Ponieważ mogą obowiązywać różne domyślne opcje, możesz zobaczyć inne zachowanie podczas wykonywania tego samego zapytania w SQL Server Management Studio w trybie SQLCMD oraz w narzędziu sqlcmd.