Outil gratuit
SQL Server en diagramme ER
Collez un script T-SQL issu de SQL Server Management Studio, avec ses lignes GO, ses crochets [dbo] et ses contraintes WITH CHECK, et obtenez un diagramme ER, avec un cadre par schéma quand le script en utilise plusieurs. Essayez l’exemple RH et paie avec des services, des postes et des employés qui dépendent d’un responsable.
Exemple de résultat
Comment ça marche
Collez ou déposez votre script T-SQL
Un fichier Generate Scripts de SSMS, la sortie de Script Table as, un script de migration EF Core ou des instructions CREATE TABLE écrites à la main, avec ou sans points-virgules.
Voyez les tables et les clés étrangères
Chaque clé étrangère ajoutée avec ALTER TABLE devient un lien entre les deux colonnes, et quand les tables se répartissent entre dbo, hr et d’autres schémas, chaque schéma reçoit son propre cadre.
Ouvrez-le dans Archboard
Enregistrez-le comme nouveau diagramme pour le réorganiser, l’annoter, partager un lien ou l’exporter en SVG et PNG. Un compte Google ou GitHub suffit pour s’inscrire.
Générer le script du schéma de base de données dans SSMS
Dans SQL Server Management Studio, faites un clic droit sur la base dans l’Explorateur d’objets et choisissez :
Sélectionnez les tables, puis, sous Advanced, laissez Types of data to script sur Schema only et enregistrez le script dans un fichier .sql. Pour une seule table, faites un clic droit dessus et choisissez Script Table as, puis CREATE To.
Tasks > Generate Scripts
La syntaxe T-SQL dans un script
Ce que devient chaque construction d’un script T-SQL :
[dbo].[Employees]- Lu. Les noms entre crochets ou entre guillemets doubles sont associés sans tenir compte de la casse, et dbo est pris comme schéma par défaut.
GO- Un séparateur de lots quand il est seul sur sa ligne, avec ou sans nombre comme GO 2. Les instructions sans point-virgule sont séparées elles aussi.
IDENTITY(1,1)- Non affiché : la colonne garde son type, par exemple int, et ni la valeur de départ ni l’incrément ne figurent sur la carte.
WITH CHECK ADD CONSTRAINT- Lu. Les clés étrangères que SSMS ajoute après les tables, avec WITH CHECK ou WITH NOCHECK, deviennent des liens entre les tables.
ALTER TABLE … CHECK CONSTRAINT- Ignoré. Cette instruction ne fait qu’activer une contrainte qui existe déjà ; elle n’ajoute rien au diagramme.
ON [PRIMARY]- Ignoré, avec TEXTIMAGE_ON et les options d’index comme WITH (PAD_INDEX = OFF, …).
NVARCHAR(MAX)- Affiché comme type de colonne, comme tout autre type avec une longueur ou une précision.
IF NOT EXISTS … BEGIN … END- Test retiré : le CREATE TABLE placé dans les tests d’existence qu’écrivent les scripts idempotents d’EF Core et SSMS est lu comme les autres.
Ce qu’un diagramme T-SQL laisse de côté
- Les procédures stockées, vues, fonctions et déclencheurs. Chaque corps est ignoré jusqu’au GO suivant et compté : une table créée dans une procédure n’est donc pas dessinée.
- Les tables temporaires comme #staging et ##shared, et les variables de table. Elles n’existent que le temps d’une session ou d’un lot : les tables temporaires sont laissées de côté et comptées, les variables de table ignorées sans être comptées.
- Les propriétés étendues, y compris les textes MS_Description ajoutés avec sp_addextendedproperty. Les descriptions ne sont pas lues.
- Tout ce qui vient d’un serveur SQL Server ou d’une base Azure SQL en marche. Aucune connexion n’est établie : le nombre de lignes, l’usage des index et les diagrammes enregistrés dans SSMS ne sont pas affichés.
Questions sur SQL Server
Quelles options de script SSMS fonctionnent le mieux ?
Les réglages par défaut de Generate Scripts conviennent : les tables sortent en CREATE TABLE, et les clés étrangères suivent en ALTER TABLE … WITH CHECK ADD CONSTRAINT, qui est lu. Activer Check for object existence entoure chaque objet d’un test IF NOT EXISTS, ce qui se lit aussi sans problème. Inclure les données ne fait qu’alourdir le fichier, puisque les lignes sont ignorées.
Faut-il retirer les lignes GO ?
Non. GO est lu comme un séparateur de lots, comme dans SSMS et sqlcmd, y compris avec un nombre de répétitions. Les scripts sans GO ni points-virgules fonctionnent aussi : une nouvelle instruction commence à chaque CREATE, ALTER ou mot-clé semblable, tandis que des expressions comme ON DELETE SET NULL restent d’un seul tenant.
Comment dbo et les autres schémas sont-ils représentés ?
Quand un script utilise plusieurs schémas, chaque schéma qui contient des tables devient un cadre : [hr].[Employees] se place dans un cadre hr à côté du cadre dbo, et les clés étrangères entre schémas traversent les cadres. Les noms sont associés sans tenir compte de la casse, comme avec le classement par défaut de SQL Server.
Est-ce que ça fonctionne avec Azure SQL Database ?
Oui. Azure SQL Database et Azure SQL Managed Instance utilisent T-SQL : les scripts générés depuis SSMS se lisent de la même façon, tout comme les scripts de migration EF Core. Connectez SSMS au serveur Azure et utilisez Generate Scripts comme avec n’importe quel autre SQL Server.
Quelque chose est-il enregistré quand je colle un script ?
L’aperçu n’est pas enregistré. Quand vous choisissez Ouvrir dans Archboard, le diagramme dessiné, avec ses cartes de tables, ses noms et types de colonnes, ses cadres de schéma et ses liens, est enregistré comme nouveau diagramme dans votre espace de travail. Les modifications ultérieures dans SQL Server ne le mettent pas à jour.
L’outil de diagramme ER pour SQL Server est-il gratuit ?
Oui. Coller un script et voir le diagramme ne demandent aucun compte. Pour ouvrir le diagramme dans Archboard, un compte gratuit suffit.
Ouvrez un canevas en une minute
Connectez-vous avec Google ou GitHub. Gratuit pour un siège. Passez à un forfait supérieur quand l'équipe vous rejoint.