Ferramenta gratuita

SQL Server para diagrama ER

Cole um script T-SQL do SQL Server Management Studio, com linhas GO, colchetes [dbo] e restrições WITH CHECK, e receba um diagrama ER, com uma moldura por esquema quando o script usa vários. Teste o exemplo de RH e folha de pagamento com departamentos, cargos e funcionários que respondem a um gestor.

Resultado de exemplo

Diagrama de exemplo desenhado a partir de um exemplo de SQL Server
Experimente um exemploRH e folha de pagamento

Como funciona

  1. Cole ou solte seu script T-SQL

    Um arquivo do Generate Scripts do SSMS, a saída do Script Table as, um script de migração do EF Core ou instruções CREATE TABLE escritas à mão, com ou sem ponto e vírgula.

  2. Veja as tabelas e as chaves estrangeiras

    Cada chave estrangeira adicionada com ALTER TABLE vira uma conexão entre as duas colunas, e quando as tabelas ficam em dbo, hr e outros esquemas, cada esquema ganha a própria moldura.

  3. Abra no Archboard

    Salve como um novo diagrama para reorganizar, anotar, compartilhar um link ou exportar em SVG e PNG. Para se cadastrar basta uma conta Google ou GitHub.

Gere o script do esquema de banco de dados no SSMS

No SQL Server Management Studio, clique com o botão direito no banco de dados no Pesquisador de Objetos e escolha:

  1. Selecione as tabelas, deixe Types of data to script em Schema only na parte Advanced e salve o script em um arquivo .sql. Para uma só tabela, clique com o botão direito nela e escolha Script Table as e depois CREATE To.

    Tasks > Generate Scripts

Sintaxe T-SQL em um script

O que acontece com cada construção de um script T-SQL:

[dbo].[Employees]
Lido. Nomes entre colchetes ou entre aspas duplas são associados sem diferenciar maiúsculas de minúsculas, e dbo é tratado como esquema padrão.
GO
Um separador de lotes quando aparece sozinho em uma linha, com ou sem um número como GO 2. Instruções sem ponto e vírgula também são separadas.
IDENTITY(1,1)
Não aparece: a coluna mantém o tipo, como int, e o valor inicial e o incremento ficam fora do cartão.
WITH CHECK ADD CONSTRAINT
Lido. As chaves estrangeiras que o SSMS adiciona depois das tabelas, com WITH CHECK ou WITH NOCHECK, viram conexões entre as tabelas.
ALTER TABLE … CHECK CONSTRAINT
Ignorado. Essa instrução só ativa uma restrição que já existe, então não acrescenta nada ao diagrama.
ON [PRIMARY]
Ignorado, junto com TEXTIMAGE_ON e opções de índice como WITH (PAD_INDEX = OFF, …).
NVARCHAR(MAX)
Mostrado como tipo da coluna, como qualquer outro tipo com tamanho ou precisão.
IF NOT EXISTS … BEGIN … END
Desembrulhado. O CREATE TABLE que fica dentro das verificações de existência escritas pelos scripts idempotentes do EF Core e pelo SSMS é lido como qualquer outro.

O que um diagrama T-SQL deixa de fora

  • Procedimentos armazenados, views, funções e triggers. Cada corpo é ignorado até o próximo GO e contado, então uma tabela criada dentro de um procedimento não é desenhada.
  • Tabelas temporárias como #staging e ##shared, e variáveis de tabela. Elas só existem enquanto dura uma sessão ou um lote: as tabelas temporárias ficam de fora e são contadas, e as variáveis de tabela são ignoradas sem contagem.
  • Propriedades estendidas, incluindo os textos MS_Description adicionados com sp_addextendedproperty. As descrições não são lidas.
  • O que vem de um SQL Server ou de um banco Azure SQL em execução. Nenhuma conexão é aberta, então contagens de linhas, uso de índices e diagramas salvos no SSMS não aparecem.

Perguntas sobre SQL Server

Quais opções de script do SSMS funcionam melhor?

Os padrões do Generate Scripts funcionam: as tabelas saem como CREATE TABLE, e as chaves estrangeiras vêm em seguida como ALTER TABLE … WITH CHECK ADD CONSTRAINT, que é lido. Ativar Check for object existence envolve cada objeto em um teste IF NOT EXISTS, o que também é lido sem problema. Incluir os dados só deixa o arquivo maior, já que as linhas são ignoradas.

Preciso remover as linhas GO?

Não. GO é lido como separador de lotes, como no SSMS e no sqlcmd, inclusive com contagem de repetições. Scripts sem GO e sem ponto e vírgula também funcionam: cada CREATE, ALTER ou palavra-chave parecida começa uma nova instrução, enquanto expressões como ON DELETE SET NULL ficam inteiras.

Como dbo e os outros esquemas aparecem?

Quando um script usa mais de um esquema, cada esquema com tabelas vira uma moldura: [hr].[Employees] fica em uma moldura hr ao lado da moldura dbo, e as chaves estrangeiras entre esquemas atravessam as molduras. Os nomes são associados sem diferenciar maiúsculas de minúsculas, como no agrupamento padrão do SQL Server.

Funciona com Azure SQL Database?

Sim. O Azure SQL Database e o Azure SQL Managed Instance usam T-SQL, então os scripts gerados a partir deles no SSMS são lidos da mesma forma, assim como os scripts de migração do EF Core. Conecte o SSMS ao servidor do Azure e use o Generate Scripts como em qualquer outro SQL Server.

Algo é salvo quando colo um script?

A prévia não é salva. Quando você escolhe Abrir no Archboard, o diagrama desenhado, com cartões de tabela, nomes e tipos de colunas, molduras de esquema e conexões, é salvo como um novo diagrama no seu espaço de trabalho. Mudanças posteriores no SQL Server não o atualizam.

A ferramenta de diagrama ER para SQL Server é gratuita?

Sim. Colar um script e ver o diagrama não exigem conta. Para abrir o diagrama no Archboard basta uma conta gratuita.

Abra um canvas em um minuto

Entre com Google ou GitHub. Grátis para um assento. Faça upgrade quando a equipe entrar.