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?