0

与えられた2つのテーブル:

T1( EntityID int , EmailAddress varchar(55),MaxNumberOfConnections int )

T2( EntityID int , EntityAttributes XML )

のすべての列(を除くすべて)が次の1つのXML列に変換されるように、1つのステートメントですべてのデータをにT1挿入するにはどうすればよいですか。T2T1EntityIDT2

T1( 1,'1234@1234.com',454)

T2(1, '<Attributes>
          <Attribute EmailAddress="1234@1234.com">
          <Attribute MaxNumberOfConnections ="454">
      </Attributes>' )
4

1 に答える 1

1

これが私のコメントに基づく2つの解決策です-複数の属性を持つ単一の「属性」要素:

SELECT
    EntityId,
    (
        SELECT
            EmailAddress AS [Attribute/@EmailAddress],
            MaxNumberOfConnections AS [Attribute/@MaxNumberOfConnections]
        FROM
            T1 i
        WHERE
            i.EntityId = o.EntityId
        FOR XML PATH('Attributes')
    ) AS EntityAttributes 
FROM
    T1 o

各フィールドの個々の要素:

SELECT
    EntityId,
    (
        SELECT
            EmailAddress,
            MaxNumberOfConnections
        FROM
            T1 i
        WHERE
            i.EntityId = o.EntityId
        FOR XML PATH('Attributes')
    ) AS EntityAttributes 
FROM
    T1 o
于 2012-10-04T19:50:00.210 に答える