A instrução ATTACH anexa uma parte de uma árvore de mensagem em uma nova posição na hierarquia de mensagens.
>>-ATTACH--referência dinâmica--TO--referência de campo---------> >--AS--+-FIRSTCHILD------+------------------------------------->< +-LASTCHILD-------+ +-PREVIOUSSIBLING-+ '-NEXTSIBLING-----'
O exemplo a seguir ilustra como utilizar a instrução ATTACH, junto com a instrução DETACH, descrita em Instrução DETACH para modificar uma estrutura de mensagem. A referência dinâmica fornecida para a instrução DETACH deve apontar para uma árvore de mensagens modificável, como Environment, LocalEnvironment, OutputRoot, OutputExceptionList ou InputLocalEnvironment.
Há algumas limitações à utilização de ATTACH. Em geral, os elementos removidos das árvores de saída de um nó Compute poderão não ser anexados ao ambiente ou às árvores de entrada.
<Dados>
<Order>
<Item>queijo
<Tipo>stilton</Tipo>
</Item>
<Item>pão</Item>
</Order>
<Order>
<Item>alho</Item>
<Item>vinho</Item>
</Order>
</Data>
as seguintes instruções ESQL: SET OutputRoot = InputRoot;
DECLARE ref1 REFERENCE TO OutputRoot.XMLNSC.Data.Order[1].Item[1];
DETACH ref1;
ATTACH ref1 TO OutputRoot.XMLNSC.Data.Order[2] AS LASTCHILD;
resultam na seguinte estrutura de mensagem: <Dados>
<Order>
<Item>pão</Item>
</Order>
<Order>
<Item>alho</Item>
<Item>vinho</Item>
<Item>queijo
<Tipo>stilton</Tipo>
</Item>
</Order>
</Data>
Para obter informações sobre referências dinâmicas, consulte Criando Referências de Campos Dinâmicos.