Data

10 mai, 2018

Utilizando o SQL Server e o SQL Operations Studio no macOS

Publicidade

Introdução

Recentemente a Microsoft anunciou o SQL Server para Linux, entretanto, para o macOS ainda não foi lançada nenhuma versão nativa.

Neste artigo, vamos aprender a solucionar esse problema de maneira bem simples, e de quebra, ainda vamos utilizar o SQL Operations Studio para gerenciar o nosso banco de dados.

Docker

Conforme mencionado na introdução, não existe versão nativa do SQL Server para macOS, então para que seja possível utilizarmos, precisaremos da ajuda de um container Docker. Falando rapidamente para quem ainda não conhece o Docker, ele é um sistema que permite “empacotar” uma aplicação ou até mesmo um ambiente todo dentro de um container, e a partir disso ele se torna portável para qualquer local que tenha o Docker instalado, e é aí que a mágica começa a acontecer.

Então primeiramente vamos fazer o download e instalar o Docker no macOS, acessando o link: https://docs.docker.com/docker-for-mac/install/. Após terminar todo o processo de instalação, ele deverá estar em execução, conforme figura abaixo:

Agora finalizamos o nosso primeiro passo.

Container Docker com o SQL Server

Nosso próximo passo será baixar o container Docker com a imagem do SQL Server, e para fazer isso vamos abrir o terminal do macOS e digitar o seguinte comando:

docker pull microsoft/mssql-server-linux:2017-latest

Feito isso, ele vai começar a baixar a imagem mais recente do SQL Server para Linux automaticamente (você também pode baixar uma versão especifica caso queira, para isso acesse o link: https://hub.docker.com/r/microsoft/mssql-server-linux/tags/ e veja as versões que se encontram disponíveis).

Assim que a imagem for completamente baixada, precisaremos configurar o SQL Server dentro do container Docker, e para isso, digitaremos o seguinte comando:

docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=SUA_SENHA_DE_SA' -p 1401:1433 --name sqlserver01 -d microsoft/mssql-server-linux:2017-latest

O comando acima determina que você aceite os termos de licença, defina sua senha de SA do banco, mapeie uma porta TCP do ambiente para uma porta TCP do container Docker, especifique um nome de fácil entendimento (se você não definir, ele vai gerar um aleatório) e por fim, a versão do SQL Server que se encontra dentro do container Docker.

Se tudo correu conforme o esperado, digitando o comando: docker ps –a, você deverá ver seu container da mesma maneira que na imagem abaixo:

Figura 2

SQL Operations Studio

O SQL Operations Studio, é uma ferramenta multi-plataforma que permite que você gerencie seu banco de dados de maneira simples e rápida. É uma excelente alternativa ao SQL Managenent Studio, também da Microsoft.

Então, primeiramente vamos fazer o download dele através do link: https://go.microsoft.com/fwlink/?linkid=872719, e instalá-lo.

Assim que terminar a instalação, nós vamos executá-lo e você verá uma tela igual a figura abaixo:

Figura 3

Agora vamos preencher os dados de acesso (os mesmos que configuramos anteriormente), e clicar em Connect para logarmos no nosso servidor, conforme a figura 4, a seguir:

Figura 4

Feito isso, vamos agora criar uma base de dados, algumas tabelas e inserir alguns registros conforme figura abaixo:

Figura 5

E para finalizar o artigo, vamos criar uma aplicação Console Application bem simples, conectando com o nosso servidor SQL Server para exibir alguns dados que acabamos de cadastrar utilizando o SQL Operations Studio. Vamos abrir o Visual Studio 2017, ou qualquer outra IDE que você utilize e vamos criar uma Console Application (File > New > Project > Console App (.NET Core) conforme a figura abaixo:

Figura 6

Dentro do nosso Método Main, vamos fazer uma conexão e exibir os dados cadastrados anteriormente, utilizando o código abaixo (comentários no próprio código para melhor entendimento):

using System;
using System.Data.SqlClient;

namespace RockDbConsole
{
    class Program
    {
        private static void Main(string[] args)
        {
            //String de Conexão
            const string connectionString = "Server=localhost,1401;Initial Catalog=RockDb;Persist Security Info=False;User ID=seu_usuario;Password=sua_senha; MultipleActiveResultSets=True";
            
            using (var conn= new SqlConnection(connectionString))
            {
                //Instrução SQL
                var command = new SqlCommand("SELECT Nome FROM Artista", conn);
                
                //Abrindo a conexão
                conn.Open(); 
                
                //Executando a instrução SQL
                var reader = command.ExecuteReader();
                
                //Verificação pra ver se existem registros
                if (!reader.HasRows) return;
                
                //Exibe todos os registros
                while (reader.Read())
                {
                    Console.WriteLine(reader[0]);
                }
            }
        }
    }
}

Espero que tenham gostado do artigo e até a próxima, pessoal!

Obrigado.