Je ne suis sûrement pas le seul à avoir eu le problème, et ceci n'est sûrement pas la meilleure solution, mais bon...

Pour récupérer un "root element" au résultat de notre
SELECT gnagnagna FORM MYTABLE FOR XML AUTO
voici ce qu'on peut faire:

SELECT root.fakepk, t.* FROM
( SELECT
1 as fakefk,
gnagnagna
FROM  MYTABLE ) as t
JOIN
( SELECT
1 as fakepk ) as root
ON root.fakepk=t.fakefk
FOR XML AUTO
  1. Oui, je vous avais prévenu, c'est dégueulasse. Sinon, ça serait pas un hack mais "une solution très élégante".
    Elle serait peut-être même dans le MSDN O:-)
  2. Oui, c'est un peu galère si notre SELECT de début est déjà un peu complexe.
    Et c'est peut-être pas tip top en performances (je suis pas DBA, je sais pas...)
  3. Oui, je sais, avec SQL services for IIS (ou l'inverse) on peut spécifier un élément racine.
    Mais c'est un peu "bombe atomique pour tuer une mouche", non ?
Enfin, si on peut faire la même chose plus simplement, je suis carrément preneur... (Pleaaaaaase!)