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
Como funciona
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.
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.
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:
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.