Langages
Détails dans une colonneSaviez-vous quand T-SQL vous pouvez ramener les détails sous une même colonne. Cela est possible en combinant FOR XML PATH et STUFF. J'en ai eu besoin l'autre jour et je vous donne le truc ici au cas ou vous voudriez l'utiliser. Supposons que nous avons une table de province. create table province Pour simplifier, je n'ai ajouté que trois provinces. En utilisant la un select FOR XML PATH, vous obtenez un arbre SQL représentant le résult de la requête mais en XML. select abbrev from province FOR XML PATH Vous obtenez alors le résultat suivant: '<row><abbre>QC</abbrev></row><row><abbre>ON</abbrev></row> <row><abbre>AB</abbrev></row>' C'est bien un arbre XML. Maintenant, on peut enlever les étiquettes "row" en ajoutant '' entre parenthèse à PATH. Voici ce que ça donne. select abbrev from province FOR XML PATH('')
Ensuite, pour remplacer les étiquettes restantes par un autre caractère comme ',' par exemple, il suffit de l'ajouter en avant du champs comme suit: select ',' + abbrev from province FOR XML PATH('')
Il ne reste plus qu'à éliminier le premier ',' devant pour faire propre. C'est là que STUFF entre en jeu. C'est une fonction pour remplacer une chaîne de caractère par une autre. select stuff((select ',' + abbrev from province for xml path('')), 1, 1, '')
Et voilà, le tour est joué. Mis à jour (Jeudi, 29 Juillet 2010 16:59) |
MS-SQL Curseur et sauvegardeUtilisation simple d’un curseur avec MS-SQL et script pour faire une sauvegarde de toutes vos bases de données.
DECLARE @name VARCHAR(50) – Nom de la base de données Le curseur est utilisé pour passer enregistrement par enregistrement dans une boucle avec la fonction WHILE. La variable @@FETCH_STATUS est égale a 0 tant qu'il y a des enregistrements à lire. Dans le select du nom de base de données il faut exclure les tables systèmes (master, modelm msdb, tempdb) pour ne faire une sauvegarde que de vos bases de données de façon dynamique. Je n'expliquerai pas ici comment créer une tâche avec MS-SQL mais je vous conseil d'en créer une et de la céduler pour le jour et l'heure voulu et vous venez d'automatiser votre sauvegarde. Daniel Bernier Mis à jour (Mercredi, 12 Mai 2010 21:29) MS-SQL calendrier dynamiqueMS-SQL calendrier dynamique
Comment créer un calendrier dynamique dans la langue de son choix, remplir une table calendrier ou utiliser une table de dimension calendrier dans un entrepôt de données. Mis à jour (Lundi, 19 Octobre 2009 17:31)
SQL RécursifCe petit article va expliquer comment faire une requête SQL récursive sous Microsoft SQL Server 2005. Mis à jour (Lundi, 19 Octobre 2009 17:34)
|