2016-07-04 4 views

Antwort

0

Der Technet-Artikel unter https://technet.microsoft.com/en-us/magazine/hh855069.aspx bietet einen hervorragenden Überblick darüber, wie Sie mithilfe von PowerShell eine Verbindung zu einer SQL Server-Datenbank herstellen können. Es enthält auch ein Beispiel Funktion, die Sie in Ihrem Scripts verwenden können:

function Get-DatabaseData { 
    [CmdletBinding()] 
    param (
     [string]$connectionString, 
     [string]$query, 
     [switch]$isSQLServer 
    ) 
    if ($isSQLServer) { 
     Write-Verbose 'in SQL Server mode' 
     $connection = New-Object-TypeName System.Data.SqlClient.SqlConnection 
    } else { 
     Write-Verbose 'in OleDB mode' 
     $connection = New-Object-TypeName System.Data.OleDb.OleDbConnection 
    } 
    $connection.ConnectionString = $connectionString 
    $command = $connection.CreateCommand() 
    $command.CommandText = $query 
    if ($isSQLServer) { 
     $adapter = New-Object-TypeName System.Data.SqlClient.SqlDataAdapter $command 
    } else { 
     $adapter = New-Object-TypeName System.Data.OleDb.OleDbDataAdapter $command 
    } 
    $dataset = New-Object-TypeName System.Data.DataSet 
    $adapter.Fill($dataset) 
    $dataset.Tables[0] 
} 
function Invoke-DatabaseQuery { 
    [CmdletBinding()] 
    param (
     [string]$connectionString, 
     [string]$query, 
     [switch]$isSQLServer 
    ) 
    if ($isSQLServer) { 
     Write-Verbose 'in SQL Server mode' 
     $connection = New-Object-TypeName System.Data.SqlClient.SqlConnection 
    } else { 
     Write-Verbose 'in OleDB mode' 
     $connection = New-Object-TypeName System.Data.OleDb.OleDbConnection 
    } 
    $connection.ConnectionString = $connectionString 
    $command = $connection.CreateCommand() 
    $command.CommandText = $query 
    $connection.Open() 
    $command.ExecuteNonQuery() 
    $connection.close() 
} 

In dem obigen Skript aus dem Technet-Artikel, würden Sie nur 3 Parameter zur Verfügung stellen müssen: die Verbindungszeichenfolge (die Sie Vertrauenswürdige Verbindung verwenden würden = True Integrated Security), die auszuführende Abfrage und der Typ der Datenbank (SQL Server oder OleDB).

0

Zusätzlich können Sie auch auf die Funktion Invoke-Sqlcmd2 zurückgreifen, die all diese Dinge für Sie automatisiert. Wir verwenden es mit großem Erfolg und es macht das Leben viel einfacher.

Verwandte Themen