Niente, alla fine ho dovuto fare via codice.
Il discorso è questo, mi dovevo costruire un corredo ti tabelle partendo da un XML per ragioni di implementazione in un software di statistiche.
In sostanza i passaggi erano questi:
1° Creare una struttura di tabelle variabili (DECLARE @tabella table (...) dove le tabelle erano i vari nodi dell'XML e le colonne i vari attributi.
2° Fare di questa struttura un'unica tabella con il sistema di utilizzo di una select come tabella in una from.
Il problema però è che il file XML non necessariamente riporta tutti gli attributi possibili.
Nell'XML che analizzo potrebbe esistere l'attributo Pippo ma se non compare mai non verrà inserito nella tabella nodo come campo perché la funzione analizza ogni xml possibile in maniera generica e non sa la struttura autentica e completa dell'xml.
Se però l'utente vuole che io gli stampi Pippo (che sarà un campo vuoto) e vado a fare una select sul tabellone unificato dell'XML s'avvelena perché Pippo non c'è.
Ho risolto in questo modo un pò tortuoso.
Una volta che ho il tabellone unificato faccio una select top 1 da questo, successivamente controllo se l'utente mi ha richiesto campi che non ci sono nel tabellone, in tal caso li aggiungo come campo=null (Pippo=null)
Quindi rifaccio una select dove i campi selezionati saranno quelli originali del tabellone + i campi non presenti richiesti settati a null dove il tabellone unificato viene usato come tabella nella from.
In questo modo ho una tabella maxima e mooooolto sudata che soddisferà ogni esigenza (non fatevi idee strane)![]()