J'aimerais créer une vue dans SQL Server qui combine plusieurs éléments de métadonnées de la base de données.
L'une des métadonnées dont j'ai besoin se trouve dans le fichier sys.syscomments
les colonnes pertinentes sont les suivantes :
id colid text
---- ------ -------------
1001 1 A comment.
1002 1 This is a lo
1002 2 ng comment.
1003 1 This is an e
1003 2 ven longer c
1003 3 omment!
Comme vous pouvez le constater, les données de la colonne "texte" sont divisées en plusieurs lignes si elles dépassent la longueur maximale (8000 octets/4000 caractères dans SQL Server, 12 caractères dans mon exemple). colid
identifie l'ordre dans lequel le texte doit être reconstitué.
Je voudrais faire une requête/sous-requête dans ma vue pour réassembler les commentaires de la table sys.syscomments, de sorte que j'ai.. :
id comment (nvarchar(max))
---- ----------------------------------
1001 A comment.
1002 This is a long comment.
1003 This is an even longer comment!
Des suggestions ou des solutions ? La vitesse n'est en aucun cas critique, mais la simplicité et le faible impact le sont (j'aimerais éviter les fonctions CLR et autres - idéalement, l'ensemble serait enveloppé dans la définition de la vue). J'ai examiné certaines suggestions basées sur XML, mais les résultats ont produit un texte rempli de chaînes d'échappement XML.