Utilizando PowerShell para o acesso a bases de dados SQL

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#

Anúncios

4 Responses to Utilizando PowerShell para o acesso a bases de dados SQL

  1. Afonso Fernandes says:

    Belo Artigo,

    Bem explicado e bem claro, acho que foi o mais claro que já vi sobre PowerShell

    Parabéns !

  2. Pytter says:

    Muito bom!
    []’s

  3. Fabiano f p stoffel says:

    Como ficaria a connectionString se fosse passado login e senha?

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: