SQL Server 2008には、次の構造のテーブルがあります。
id     = int
numero = int
datos  = xml
[other_misc_fields]
このSQLフィドルのいくつかのサンプルデータを含む表を見ることができます。リンクからわかるように、フィールドdatos(データ)はXMLです。このXMLには既知の構造がありません。私が知っているのは、ルートが「lote」であり、すべてのフィールドにフィールドの「表示名」である属性「title」があることだけです。この行に沿って何かをクエリできるようにしたいと思います
id | numero | display_name_field_1 | display_name_field_2 | display_name_field_3
 1 |   23   |     value_field_1    |     value_field_2    |     value_field_3
動的SQLを使用して(別のSQLから)各ノードから値を取得することはできますが、title属性を使用して名前を変更する方法がわかりません。
select @SQL = 'select '+stuff(
  (
  select ',T.N.value('''+T.N.value('local-name(.)', 'sysname')+'[1]'', ''varchar(max)'') as '+T.N.value('local-name(.)', 'sysname')
  from @XML.nodes('/*[local-name(.)=sql:variable("@KnownName")]/*') as T(N)
  for xml path(''), type
  ).value('.', 'nvarchar(max)'), 1, 1, '')+
  ' from @XML.nodes(''/*[local-name(.)=sql:variable("@KnownName")]'') as T(N)
@KnownNameは「lote」です。
フィールドの名前がノードの@title属性に変更されるように、そのクエリを変更するにはどうすればよいですか?または、代わりに、動的SQLよりもこれを行うためのより良い方法はありますか?