O Windows PowerShell é um prompt de comando muito poderoso. Com ele podemos criar scripts para automatização de tarefas, consumir componentes Microsoft .Net, objetos COM e outras APIs de aplicações Microsoft (como por exemplo Sharepoint, Exchange, Active Diretory, etc).
Devido ao seu uso bastante genérico, sempre surgem diferentes situações para o seu emprego. Gostaria de demonstrar nesse post como é feita a leitura e inclusão de dados em bases de dados SQL via Windows PowerShell.
Para realização destas tarefas, criei um script PowerShell que reune um conjunto de comandos. Podemos dividir esse script em 4 blocos:
– Primeiro bloco: corresponde a criação de variáveis para composição da connection string de acesso a base de dados SQL.
– Segundo bloco: método ReadData, utiliza os componentes do namespace System.Data.SqlClient para criar uma conexão com uma base de dados SQL e ler dados de uma tabela do SQL.
– Terceiro bloco: método InserData, também utiliza os componentes do namespace System.Data.SqlCliente para criação de uma conexão com uma base de dados SQL e persistência de dados em uma tabela do banco de dados.
– Quarto bloco: chamada dos métodos de leitura e inclusão dos dados.
# Bloco 1 - Criação de variáveis
$global:serverName = ".\sqlexpress"
$global:databaseName = "Blog"
$global:connectionString = "Server=" + $serverName + ";Database=" + $databaseName + ";Integrated Security=True"
# Bloco 2 - Método de leitura de dados
Function ReadData {
clear
$query = "select id, title from posts"
$sqlConnection = New-Object System.Data.SqlClient.SqlConnection
$sqlConnection.ConnectionString = $connectionString
$command = New-Object System.Data.SqlClient.SqlCommand
$command.CommandText = $query
$command.Connection = $sqlConnection
$sqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$sqlAdapter.SelectCommand = $command
$table = New-Object System.Data.DataTable
$linhaAfetadas = $sqlAdapter.Fill($table)
$sqlConnection.Close()
Foreach ($row in $table.Rows) {
Write-Host $row["id"] " - " $row["title"]
}
}
# Bloco 3 - Método de inclusão de dados
Function InsertData ($title) {
$query = "insert into posts (title) values ('" + $title + "')"
$sqlConnection = New-Object System.Data.SqlClient.SqlConnection
$sqlConnection.ConnectionString = $connectionString
$command = New-Object System.Data.SqlClient.SqlCommand
$command.CommandText = $query
$command.Connection = $sqlConnection
$sqlConnection.Open()
$registrosAfetados = $command.ExecuteNonQuery()
$sqlConnection.Close()
}
# Bloco 4 - Execução dos métodos de leitura e inclusão de dados
# Inserir dados na base de dados
InsertData("post 01")
InsertData("post 02")
InsertData("post 03")
InsertData("post 04")
InsertData("post 05")
# Ler dados da base de dados
ReadData
O Windows PowerShell já vem instalado por padrão nos sistemas operacionais Windows 7, Windows 8, Windows Server 2008 R2 e Windows Server 2012. Ele pode ser instalado em outros sistemas operacionais, por meio deste link: http://www.microsoft.com/en-us/download/details.aspx?id=34595
Por
MSc. Fernando Henrique Inocêncio Borba Ferreira
Microsoft Most Valuable Professional – Visual C#
Belo Artigo,
Bem explicado e bem claro, acho que foi o mais claro que já vi sobre PowerShell
Parabéns !
Obrigado por postar, Afonso!
[]s!
Muito bom!
[]’s
Como ficaria a connectionString se fosse passado login e senha?