Durant les années ou j’ai pu travailler dans les bases de données, j’ai pu remarquer que le challenge n’est pas de bien formater son code SQL (ou d’apprendre les autres à le faire) … mais bien d’avoir un standard adopté par tous.
C’est pourquoi les outils pour formater le code SQL sont quasiment des « must have » dans une équipe projet que ce soit pour les DBA ou les développeurs.
Les DBA/Développeurs SQL définisse les standards (en se référents aux standards SQL) et peuvent facilement les faire appliquer aux autres utilisateurs.
- Gratuit (le DBA est pauvre et le client aussi)
- Création et partage de profiles
- Customisation très poussée
- Prévisualisation du formatage dans les options
APEX Refactor permet une intégration à Visual Studio ainsi qu’à Microsoft SQL Server Management Studio.
Téléchargement à partir de : https://www.apexsql.com/Download.aspx
=> APEX SQL Refactor
Pendant l’installation vous êtes invités à choisir à quel programme APEX Refactor va être intégré :
Pour l’exemple je vais prendre les menus d’APEX refactor intégrés à SSMS.
APEX SQL Refactor prend en charge la création, la customisation, la suppression ainsi que le partage de profils pour formater votre code SQL. Il vous permettra d’uniformiser le code SQL au sein d’une équipe voire d’une organisation.
APEX SQL Refactor permets de prévisualiser le formatage qui sera appliqué avec les options définies.
Les différents menus:
=> indentation, management des espaces, management des lignes vides
=> forcer les majuscules ou minuscules sur certaines données
=> Visuel des commentaires
=> indentation et alignement des clauses, des requêtes imbriquées, des définitions d’objets ainsi que des alias.
=> formatage des listes (variables , clause WHERE etc…)
=> formatage des expressions (logiques , comparaisons, etc…)
=> formatage des JOIN
=> formatage des CASE WHEN et BEGIN END
=> formatage pour rendre le code moins lisible
=> definition des raccourcis
Une fonction qui peut être très utile pour de l’industrialisation de certaines requêtes souvent utilisées : l’encapsulation.
Un bloc de code SQL standard peut être transformé en une procédure, une vue, une fonction scalaire ou une fonction table.
La fonction est directement utilisable via le sous-menu : « encapsulate code as »
Une autre fonction intéressante qui sera utilisée pour ajouter le schéma ou l’alias dans les requêtes comme l’exemple ci-dessous :
Requête :
SELECT Name FROM HumanResources.Department t1
WHERE Name LIKE '%'
Après formatage:
SELECT t1.Name FROM HumanResources.Department t1
WHERE t1.Name LIKE '%'
La fonction est disponible dans le menu principal : « qualify object name ».
La fonction « copy code as » dans le menu principal permet de copier un code SQL
Si on prend comme exemple le code suivant :
CREATE TABLE ApexSQLDocs
(
DocID INT NOT NULL IDENTITY,
DocTitle NVARCHAR(50) NOT NULL,
DocFileName NVARCHAR(400) NOT NULL,
CONSTRAINT PK_ApexDocs_DocID PRIMARY KEY CLUSTERED (DocID ASC)
)
GO
Copy code as Java va donner :
String sql = "CREATE TABLE ApexSQLDocsn"
+ "(n"
+ " DocID INT NOT NULL IDENTITY,n"
+ " DocTitle NVARCHAR(50) NOT NULL,n"
+ " DocFileName NVARCHAR(400) NOT NULL,n"
+ " CONSTRAINT PK_ApexDocs_DocID PRIMARY KEY CLUSTERED (DocID ASC)n"
+ ")n"
+ "GO";
Copy code as PHP va donner :
$sql = "CREATE TABLE ApexSQLDocs\n"
. "(\n"
. " DocID INT NOT NULL IDENTITY,\n"
. " DocTitle NVARCHAR(50) NOT NULL,\n"
. " DocFileName NVARCHAR(400) NOT NULL,\n"
. " CONSTRAINT PK_ApexSQLDocs_DocID PRIMARY KEY CLUSTERED (DocID ASC)\n"
. ")\n"
. "GO";
Dans les autres fonctions moins utilisées on peut citer la fonction de suppression des variables et paramètres non utilisés et la fonction de séparation d’une table en deux tables distinctes qui pourraient trouver un usage.
....Plus d’excuses pour du code SQL mal formaté !
Commentaires :
Aucun commentaires pour le moment
Laissez un commentaire :