SQL Database Organizer - Extension VS Code
Extension complète pour VS Code permettant d'explorer, gérer et administrer des bases de données SQL Server directement depuis votre éditeur, similaire à SQL Server Management Studio (SSMS).


📋 Sommaire
✨ Fonctionnalités
| Catégorie |
Fonctionnalités |
| 🔌 Connexions |
Connexions multiples, Authentification Windows, Comptes AD, Instances nommées, SSL/TLS, Import/Export, Surveillance de la santé |
| ✨ Assistant IA |
Génération de SQL en langage naturel, 8 fournisseurs (OpenAI, Anthropic, Azure, Google, Mistral, OpenRouter, Ollama, custom), clés en SecretStorage, niveaux de risque, mode Appliquer / Script |
| 🔍 Recherche |
Recherche d'objets (tables/vues/procédures/fonctions), QuickPick, Filtrage explorer, Cache mémoire, Multi-connexions |
| 🌳 Exploration |
Arborescence hiérarchique, Groupement par schéma, Propriétés étendues, Dossiers virtuels |
| 🔐 Sécurité |
Logins serveur, Utilisateurs et rôles par base, Matrice de permissions GRANT/DENY, Assistant d'attribution de droits |
| 📝 Requêtes SQL |
Editeur intégré, Résultats formatés, Historique des requêtes, Requêtes favorites, Export résultats (CSV/Excel/JSON) |
| 🗓️ Agent SQL Server |
Liste des jobs, Statut en 7 états, Historique d'exécution, Étapes du job, Activer/désactiver, Démarrer, Générer le script |
| 🔧 Génération de scripts |
SELECT / INSERT / UPDATE / DELETE, Scripts schéma + données, CREATE TABLE |
| 📇 Gestion des index |
REBUILD / REORGANIZE, Activer/désactiver, Assistant de création, Rapport de fragmentation |
| ⚡ Déclencheurs |
Liste, Assistant de création, Édition, Activer/désactiver, Script SQL |
| 🎨 Table Designer |
Éditeur visuel, Validation en temps réel, Gestion des colonnes & contraintes |
| 🧪 Données de test |
Génération de N lignes réalistes, Rôles sémantiques, NULL réglables, Script INSERT par lots |
| 📊 Outils avancés |
Diagramme de relations, Plan d'exécution + index manquants, Rapports détaillés, Export Excel/CSV/JSON |
| 💾 Administration |
Backup / Restore, Extraction DAC/Bacpac, Gestion des logins |
| ⚙️ Configuration |
Multi-langue (FR/EN), Cache métadonnées, Paramètres personnalisables |
🎯 Prérequis
- VS Code 1.70.0 ou supérieur
- SQL Server 2012 / 2014 / 2016 / 2017 / 2019 / 2022
- Connexion réseau accessible au serveur SQL Server
📦 Installation
Version actuelle : 1.9.0 — voir le CHANGELOG.md pour le détail des nouveautés et correctifs.
- Ouvrez VS Code
- Allez dans l'onglet Extensions
- Recherchez
SQL Database Organizer
- Cliquez sur Installer
Ou installez directement depuis le Marketplace:
SQL Database Organizer sur VS Code Marketplace
🚀 Guide d'utilisation
1. Connexion à SQL Server
✅ Ouvrez la vue Database Explorer depuis la barre d'activité (icône base de données)
✅ Cliquez sur l'icône +
✅ Remplissez le formulaire de connexion:
- Nom personnalisé pour la connexion
- Adresse du serveur / Port
- Base de données par défaut (optionnel)
- Authentification: SQL Server / Windows / Domaine Active Directory
- Options SSL et timeout de connexion
✅ Enregistrez votre connexion
💡 Tous les mots de passe sont stockés de manière sécurisée via le système SecretStorage natif de VS Code.
2. Exploration de la base de données
✅ Cliquez sur une connexion pour lister les bases de données
✅ Développez une base de données pour voir:
- Tables, Vues, Procédures stockées, Fonctions
- Colonnes, Index, Contraintes, Triggers, Statistiques
- Permissions et propriétés étendues SQL Server
- Sécurité : logins serveur, utilisateurs et rôles de la base, avec matrice des permissions (GRANT / DENY) et assistant d'attribution de droits
✅ Groupement automatique par schéma: Tous les objets sont organisés automatiquement par schéma SQL avec compteur dynamique.
✅ Dossiers virtuels: Organisez vos objets comme vous le souhaitez avec des dossiers personnalisés colorés.
3. Exécuter des requêtes SQL
✅ Ouvrez un fichier .sql ou créez un nouveau fichier
✅ Écrivez votre requête
✅ Clique droit → Exécuter la requête SQL ou utilisez le raccourci
✅ Sélectionnez la connexion à utiliser
✅ Les résultats s'affichent dans un panneau webview dédié et formaté
4. Table Designer
✅ Clic droit sur une table → Ouvrir Table Designer
✅ Ajouter / Modifier / Supprimer / Renommer des colonnes
✅ Définir types, nullabilité, clés primaires et étrangères
✅ Validation automatique en temps réel
✅ Génération du script SQL final pour application des changements
5. Rechercher des objets de base de données
✅ Cliquez sur l'icône 🔍 dans la barre d'outils de l'explorateur ou utilisez la commande Rechercher un objet
✅ Saisissez le nom de l'objet à rechercher (table, vue, procédure, fonction)
✅ Les résultats s'affichent dans un QuickPick avec le nom, type, schéma et base de données
✅ Cliquez sur un résultat pour filtrer l'explorateur et afficher uniquement cet objet avec son arborescence
✅ La recherche est effectuée sur toutes les connexions configurées
✅ Cache mémoire : Les recherches suivantes sont instantanées (indexation en mémoire avec expiration de 5 minutes)
6. Assistant IA (✨)
✅ Ouvrez le panneau ✨ Assistant IA depuis la barre latérale (ou la commande ✨ Ouvrir l'assistant IA)
✅ Configurez une clé via 🔑 Gérer les clés IA : choisissez le fournisseur (OpenAI, Anthropic, Azure OpenAI, Google, Mistral, OpenRouter, Ollama ou endpoint personnalisé), la clé est stockée dans le SecretStorage de VS Code (jamais dans settings.json)
✅ Décrivez votre besoin en langage naturel (raccourci Ctrl+Enter) : « Crée la base Ventes avec les tables Clients et Commandes, une clé étrangère, un index et une vue des commandes du mois »
✅ Choisissez le mode :
- ⚡ Appliquer : l'IA manipule directement l'explorateur (création de tables, index, vues…) avec confirmation avant exécution
- Générer le script : obtenez le T-SQL à relire, avec
▶ Exécuter / Ouvrir / Copier
✅ Le niveau de risque (Lecture seule / Écriture / ⚠ Destructif) est calculé sur le SQL réellement produit ; une opération destructrice exige de saisir SUPPRIMER pour confirmer
✅ Après exécution, l'arbre est rafraîchi automatiquement : les objets créés apparaissent aussitôt
📜 Liste complète des commandes
| Commande |
Description |
| 🔌 Connexions |
|
Ajouter une connexion |
Créer une nouvelle connexion SQL Server |
Se connecter |
Etablir la connexion au serveur |
Déconnecter |
Fermer la connexion active |
Exporter les connexions |
Exporter toutes les connexions sauvegardées |
Importer des connexions |
Importer un fichier de connexions |
Modifier connexion |
Editer les paramètres d'une connexion existante |
Tester toutes les connexions |
Ping de santé sur toutes les connexions et affichage du statut de chacune |
|
|
| 📊 Exploration |
|
Actualiser |
Rafraichir l'arborescence des objets |
Rechercher un objet |
Rechercher tables, vues, procédures, fonctions dans toutes les connexions |
Afficher propriétés |
Afficher les détails complets d'un objet |
Renommer objet |
Renommer tables, vues, procédures, fonctions |
Supprimer objet |
Supprimer définitivement un objet |
|
|
| 📝 Requêtes |
|
Ouvrir nouvelle requête |
Ouvrir un éditeur SQL sur la base sélectionnée |
Exécuter requête SQL |
Exécuter la requête sélectionnée |
Ajouter aux favoris |
Sauvegarder la requête dans les favoris |
Voir historique requêtes |
Consulter l'historique de toutes les requêtes exécutées |
Analyser le plan d'exécution |
Analyser le plan estimé/réel d'une requête et proposer les index manquants |
|
|
| 🔧 Génération scripts |
|
Générer SELECT |
Génère un script SELECT * pour la table |
Générer INSERT |
Génère un template INSERT |
Générer UPDATE |
Génère un template UPDATE |
Générer DELETE |
Génère un template DELETE |
Générer script schéma |
Génère le script de création de la table/base |
Générer script données |
Génère le script d'insertion des données |
Générer script complet |
Génère script schéma + données |
|
|
| 🛠️ Outils |
|
Ouvrir Table Designer |
Editeur visuel de tables |
Ouvrir diagramme relations |
Visualisation graphique des relations entre tables |
Exporter table |
Exporter les données d'une table vers Excel / CSV |
Afficher rapport base de données |
Rapport statistique complet sur la base |
Afficher rapport connexion |
Rapport détaillé sur la connexion |
|
|
| 💾 Administration |
|
Créer base de données |
Créer une nouvelle base de données |
Supprimer base de données |
Supprimer définitivement une base |
Backup base de données |
Effectuer un backup complet |
Restaurer base de données |
Restaurer depuis un fichier .bak |
Extraire application DAC |
Générer un fichier .dacpac |
Exporter Bacpac |
Générer un fichier .bacpac |
Créer login |
Créer un nouveau login SQL Server |
Renommer login |
Renommer un login existant |
Activer/Désactiver login |
Changer le statut d'un login |
Supprimer login |
Supprimer définitivement un login |
Liste des déclencheurs |
Lister les déclencheurs d'une base de données |
Nouveau déclencheur |
Créer un déclencheur via un assistant (script SQL pré-rempli) |
Modifier le déclencheur |
Ouvrir la définition du déclencheur dans un éditeur SQL |
Activer / désactiver le déclencheur |
Changer l'état d'un déclencheur |
Supprimer le déclencheur |
Supprimer définitivement un déclencheur |
Script du déclencheur |
Générer le script SQL du déclencheur |
Générer des données de test |
Générer un script INSERT de N lignes réalistes pour une table |
|
|
| 📁 Dossiers virtuels |
|
Créer dossier virtuel |
Créer un dossier personnalisé |
Supprimer dossier virtuel |
Supprimer un dossier virtuel |
Définir couleur dossier |
Personnaliser la couleur du dossier |
|
|
| ✨ Assistant IA |
|
✨ Ouvrir l'assistant IA |
Ouvrir le panneau latéral de génération de SQL en langage naturel |
🔑 Gérer les clés IA |
Ajouter, modifier, tester ou supprimer une clé API de fournisseur d'IA |
✨ Générer un script SQL avec l'IA |
Générer un script T-SQL ciblé à partir de la sélection courante |
⚙️ Configuration
Toutes les options de configuration sont disponibles dans les paramètres VS Code:
| Paramètre |
Valeur par défaut |
Description |
sqldatabaseorganizer.enableCaching |
true |
Activation du cache des métadonnées pour améliorer les performances |
sqldatabaseorganizer.enableHistory |
true |
Activation de l'historique des requêtes |
sqldatabaseorganizer.enableFavorites |
true |
Activation des requêtes favorites |
sqldatabaseorganizer.enableDatabaseOrganizer |
true |
Activation de la vue Database Explorer (barre d'activité) |
sqldatabaseorganizer.enableCustomDatabaseReorganizer |
true |
Activation des dossiers virtuels et du réorganiseur personnalisé |
sqldatabaseorganizer.format.keywordCase |
upper |
Casse des mots-clés SQL à la mise en forme : upper / lower / preserve |
sqldatabaseorganizer.format.indent |
two |
Indentation SQL : two / four / tab |
sqldatabaseorganizer.queryTimeout |
30 |
Délai maximal d'exécution d'une requête en secondes (0 = illimité) |
sqldatabaseorganizer.language |
auto |
Langue de l'interface: auto / fr / en |
sqldatabaseorganizer.ai.includeSchema |
true |
Inclure le schéma de la base dans le contexte envoyé à l'IA |
sqldatabaseorganizer.ai.temperature |
0 |
Température du modèle IA (0–2) : 0 = réponses déterministes |
sqldatabaseorganizer.ai.maxTokens |
2000 |
Nombre maximal de tokens générés par l'IA (256 min) |
🩺 Santé des connexions
| Paramètre |
Valeur par défaut |
Description |
sqldatabaseorganizer.health.enabled |
true |
Surveiller la santé des connexions (ping périodique et pastille d'état) |
sqldatabaseorganizer.health.autoReconnect |
true |
Reconnexion automatique silencieuse après plusieurs échecs de ping |
sqldatabaseorganizer.health.intervalMs |
60000 |
Intervalle entre deux pings de santé |
sqldatabaseorganizer.health.timeoutMs |
10000 |
Délai maximal d'un ping avant échec |
sqldatabaseorganizer.health.degradedLatencyMs |
2000 |
Latence au-delà de laquelle la connexion est considérée comme lente |
sqldatabaseorganizer.health.failureThreshold |
2 |
Nombre d'échecs consécutifs avant tentative de reconnexion |
sqldatabaseorganizer.health.maxReconnectAttempts |
3 |
Nombre maximal de reconnexions automatiques par connexion |
🔍 Fonctionnalités détaillées
✨ Assistant IA
(https://raw.githubusercontent.com/ElHoussineDarrazi/Portfolio/main/projects/iaSQLOrganizer.png)
- ✅ Panneau latéral « ✨ Assistant IA » : un champ de texte,
Ctrl+Enter pour générer, raccourcis par catégorie, aperçu du SQL, notes du modèle et boutons Exécuter / Ouvrir / Copier
- ✅ 8 fournisseurs : OpenAI, Anthropic, Azure OpenAI, Google, Mistral, OpenRouter, Ollama et endpoint personnalisé compatible OpenAI (
baseUrl configurable par profil)
- ✅ Clés API en toute sécurité : stockées dans le
SecretStorage natif de VS Code (Keychain / Credential Manager) — jamais dans settings.json, jamais renvoyées au webview ; test de clé intégré avec messages d'erreur contextualisés (401/404/400/5xx)
- ✅ 10 catégories de demandes avec guide de prompt métier : base, tables, index, vues, procédures, fonctions, triggers, DML, sécurité, maintenance
- ✅ Niveaux de risque calculés sur le SQL réellement produit :
Lecture seule / Écriture / ⚠ Destructif, confirmation modale, et saisie obligatoire de SUPPRIMER pour les opérations destructrices (DROP, TRUNCATE, DELETE, UPDATE)
- ✅ Mode ⚡ Appliquer : actions structurées appliquées à l'explorateur avec confirmation, sans écrire de SQL ; mode script : T-SQL à relire avant exécution
- ✅ Rafraîchissement automatique de l'explorateur après exécution : les objets créés apparaissent aussitôt dans l'arbre
- ✅ Clic droit sur un objet de l'arbre pour générer un script ciblé
✅ Connexions
- ✅ Compatibilité complète SQL Server 2012 à 2022
- ✅ Authentification Windows native
- ✅ Support des comptes Active Directory
- ✅ Support des instances nommées SQL Server
- ✅ Connexions multiples simultanées
- ✅ Stockage sécurisé des mots de passe
- ✅ Chiffrement TLS pour toutes les communications
- ✅ Timeout de connexion configurable
- ✅ Affichage immédiat du nom et version du serveur
- ✅ Import/Export des connexions sauvegardées
- ✅ Surveillance de la santé : ping périodique en tâche de fond, pastille d'état sur chaque connexion de l'arbre (🟢 sain / 🟡 lent / 🔴 hors ligne)
- ✅ Reconnexion automatique silencieuse avec backoff exponentiel après plusieurs échecs consécutifs
- ✅ Commande « Tester toutes les connexions » pour un diagnostic ponctuel de toutes les connexions configurées
✅ Exploration
- ✅ Arborescence hiérarchique complète
- ✅ Groupement automatique par schéma SQL
- ✅ Compteur dynamique sur chaque dossier
- ✅ Dossiers virtuels personnalisables avec couleurs
- ✅ Drag & Drop des objets dans les dossiers virtuels
- ✅ Affichage des propriétés étendues SQL Server
- ✅ Rafraichissement automatique et manuel
✅ Recherche d'objets
- ✅ Recherche de tables, vues, procédures et fonctions
- ✅ Recherche multi-connexions (toutes les bases de toutes les connexions)
- ✅ Affichage des résultats via QuickPick avec nom, type, schéma et base de données
- ✅ Filtrage "soft" de l'explorateur après sélection d'un résultat
- ✅ Cache mémoire intelligent (5 min TTL) pour des recherches instantanées
- ✅ Icône de recherche dans la barre d'outils de l'explorateur
- ✅ Message d'accueil avec lien vers la recherche quand aucune connexion n'est configurée
✅ Requêtes SQL
- ✅ Exécution directe depuis l'éditeur VS Code
- ✅ Affichage des résultats dans panneau dédié
- ✅ Historique illimité des requêtes exécutées
- ✅ Système de requêtes favorites
- ✅ Autocomplétion SQL IntelliSense
- ✅ Coloration syntaxique SQL améliorée
- ✅ Code Lens pour exécution rapide
- ✅ Export des résultats de requête en CSV, Excel (un onglet par jeu de résultats) et JSON
- Boutons d'export dans les webviews de résultats + bouton « 📤 Exporter » dans la barre de statut
- Commande
sqlResults.exportResults (palette de commandes) pour exporter les derniers résultats
- ✅ Plan d'exécution et analyse des index manquants
- Commande « Plan d'exécution » sur la requête courante ou la sélection (menu contextuel de l'éditeur SQL ou palette)
- Mode Plan estimé (
SHOWPLAN_XML + STATISTICS PROFILE) ou Plan réel (STATISTICS XML, avec les lignes réellement lues)
- Tableau des opérateurs triés par coût décroissant (scan, jointure…), avec le détail de chaque opérateur au clic
- Index manquants recommandés (issus du plan et des DMV), avec le script
CREATE INDEX prêt à copier
- Permissions requises :
ALTER TRACE (ou sysadmin) pour le plan réel, VIEW SERVER STATE pour le plan estimé et les DMV
- ✅ Bibliothèque de modèles de requêtes (44 modèles intégrés)
- Catégories : Sélection, DML, DDL, Administration, Diagnostic, Sécurité, Maintenance, Transactions
- Insertion guidée : 📋 Insérer un modèle de requête (palette, barre de l'éditeur, menu contextuel,
Ctrl+Alt+S / Cmd+Alt+S)
- Variables
{{variable}} saisies une par une avant insertion
- Modèles personnels : ⭐ Enregistrer la sélection comme modèle, puis 🗂️ Gérer mes modèles de requêtes (modifier / supprimer / vider / lister)
- Import / export de la bibliothèque en JSON pour la partager entre postes
- Tous les modèles sont aussi proposés dans l'IntelliSense SQL
✅ Administration
- ✅ Backup / Restore des bases de données
- ✅ Extraction DAC et export Bacpac
- ✅ Gestion complète des logins SQL Server
- ✅ Utilisateurs et rôles par base, avec matrice des permissions (GRANT / DENY)
- Matrice effective via
sys.fn_my_permissions (avec repli sur les droits explicites si EXECUTE AS est refusé)
- 🔐 Assistant d'attribution : portée (base / schéma / table / vue / procédure) → objet → droit → principal, puis exécution du
GRANT / DENY
- Les opérations basculent le contexte sur la base cible (les principals d'une base n'existent pas sur la base par défaut de la connexion)
- ✅ Supervision des jobs de l'Agent SQL Server (
msdb)
- 📋 Liste des jobs avec catégorie, activation, planification et prochaines / dernières dates d'exécution
- 🚦 Statut normalisé en 7 états (désactivé, jamais exécuté, réussi, échoué, en réessai, annulé, inconnu) avec icône et couleur
- 🕘 Historique d'exécution avec durée, nombre de tentatives et message de l'Agent
- 📖 Étapes du job : type, base cible, commande SQL, réessais et actions de fin
- ⏯️ Activer / désactiver un job, ▶️ le démarrer immédiatement
- 📄 Générer le script de recréation d'un job dans un document SQL éditable
- ✅ Gestion des index (les index d'une table ne sont plus en lecture seule)
- 🔧 REBUILD / REORGANIZE sur n'importe quel index, via le menu contextuel
- ⏯️ Activer / désactiver un index
- 📄 Générer le
CREATE INDEX d'un index existant dans un document SQL éditable
- 🆕 Assistant de création : portée (table / vue), colonnes (ASC/DESC),
INCLUDE, options UNIQUE / FILTER / ONLINE
- 📊 Rapport de fragmentation (
sys.dm_db_index_physical_stats) : fragmentation, pages fantômes, taille, et recommandation REBUILD (> 30 %) / REORGANIZE (10-30 %)
- ✅ Concepteur de déclencheurs (les déclencheurs ne sont plus en lecture seule)
- ⚡ Liste des déclencheurs d'une base : type (AFTER / INSTEAD OF), événements, table parente, dates et corps SQL
- 🆕 Assistant de création (table, type, événements, nom, activation) générant un
CREATE OR ALTER TRIGGER pré-rempli
- ✏️ Ouvrir la définition d'un déclencheur pour la modifier
- ⏯️ Activer / désactiver un déclencheur (
ENABLE / DISABLE TRIGGER)
- 🗑️ Supprimer un déclencheur, 📄 en générer le script dans un onglet SQL
- ✅ Générateur de données de test (menu contextuel sur une table)
- 🧪 Génère N lignes (jusqu'à 100 000) à partir du schéma réel de la table
- 🎭 Valeurs plausibles et non aléatoires brutes : un nom ressemble à un nom, un email est dérivé du nom, une adresse contient une ville réelle, une date est dans le passé
- 🏷️ Rôles sémantiques déduits du nom de colonne (
Email, Prix, DateCreation, Statut…) — aucune configuration nécessaire
- 🛡️ Respect strict du schéma : colonnes identité et calculées écartées,
precision/scale et longueurs respectées, échappement SQL systématique
- 🎛️ Options réglables : nombre de lignes, plage de dates, taux de
NULL sur les colonnes nullables
- 🔁 Générateur déterministe : la même graine rejoue exactement le même jeu de données (utile pour reproduire un bug)
- 📄 Script
INSERT (par lots) ouvert dans un éditeur SQL, prêt à exécuter
- ✅ Tables temporelles (system-versioned)
- 🕒 Badge 🕒 dans l'explorateur : les tables temporelles sont distinguées visuellement des tables classiques
- 🕒 Voir l'historique complet d'une table, ou son état à une date précise (
FOR SYSTEM_TIME AS OF)
- ⚖️ Comparer l'état de la table entre deux instants, en affichant les lignes modifiées
- 📊 État de la table d'historique : volume total, période couverte, répartition par mois, politique de rétention
- 📄 Script de la table temporelle (avec
PERIOD FOR SYSTEM_TIME et HISTORY TABLE) dans un document SQL éditable
- ℹ️ Le cas
HISTORY_TABLE = NULL (historique conservé par l'application) est détecté et signalé plutôt que d'échouer
- ✅ Rapports statistiques détaillés
- ✅ Export tables et résultats de requête vers Excel, CSV et JSON
- ✅ Diagramme visuel des relations entre tables
🛟 Support
Si vous rencontrez un problème:
- Consultez le Guide de dépannage
- Vérifiez les Correctifs connus
- Ouvrez une issue sur GitHub:
https://github.com/ElHoussineDarrazi/sqldatabaseorganizer/issues
📄 Licence
Projet développé par El Houssine DARRAZI
Licence ISC - Voir fichier LICENSE pour plus de détails.
💡 Note: Cette extension est en développement actif. De nouvelles fonctionnalités sont ajoutées régulièrement. Consultez régulièrement le CHANGELOG pour suivre les mises à jour.
| |