Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
O modo FOR XML pode ser RAW, AUTO, EXPLICIT ou PATH. Determina a forma do XML resultante.
Importante
A diretiva XMLDATA para a opção FOR XML está obsoleta. Use geração XSD no caso dos modos RAW e AUTO. Não existe substituto para a diretiva XMLDATA em modo EXPLICITT. Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em novos trabalhos de desenvolvimento e planeje modificar aplicativos que atualmente usam esse recurso.
Sintaxe
Segue-se a sintaxe básica descrita na cláusula FOR (Transact-SQL).
[ FOR { BROWSE | <XML> } ]
<XML> ::=
XML
{
{ RAW [ ('ElementName') ] | AUTO }
[
<CommonDirectives>
[ , { XMLDATA | XMLSCHEMA [ ('TargetNameSpaceURI') ]} ]
[ , ELEMENTS [ XSINIL | ABSENT ]
]
| EXPLICIT
[
<CommonDirectives>
[ , XMLDATA ]
]
| PATH [ ('ElementName') ]
[
<CommonDirectives>
[ , ELEMENTS [ XSINIL | ABSENT ] ]
]
}
<CommonDirectives> ::=
[ , BINARY BASE64 ]
[ , TYPE ]
[ , ROOT [ ('RootName') ] ]
Arguments
RAW [('NomeElemento')]
Pega no resultado da consulta e transforma cada linha do conjunto de resultados num elemento XML que tem um identificador genérico, <row />, como etiqueta de elemento. Pode, opcionalmente, especificar um nome para o elemento linha quando usar esta diretiva. O XML resultante usará o especificado ElementName como elemento de linha gerado para cada linha. Para mais informações, veja Usar Modo RAW com FOR XML.
AUTO
Devolve os resultados da consulta numa árvore XML simples e aninhada. Cada tabela na cláusula FROM para a qual pelo menos uma coluna está listada na cláusula SELECT é representada como um elemento XML. As colunas listadas na cláusula SELECT são mapeadas para os atributos de elemento apropriados. Para mais informações, veja Usar Modo AUTO com FOR XML.
EXPLÍCITO
Especifica que a forma da árvore XML resultante é definida explicitamente. Ao usar este modo, as consultas devem ser escritas de uma forma específica, para que as informações adicionais sobre o aninhamento desejado sejam fornecidas explicitamente. Para mais informações, veja Usar Modo EXPLÍCITO com FOR XML.
CAMINHO
Proporciona uma forma mais simples de misturar elementos e atributos, e de introduzir aninhamento adicional para representar propriedades complexas. Pode usar consultas no modo FOR XML EXPLICIT para construir este tipo de XML a partir de um conjunto de resultados, mas o modo PATH oferece uma alternativa mais simples às possivelmente complicadas consultas do modo FOR XML EXPLICIT. O modo PATH, juntamente com a capacidade de escrever consultas FOR XML aninhadas e a diretiva TYPE para devolver instâncias de tipo xml, permite escrever consultas menos complexas. Disponibiliza uma alternativa à escrita da maioria das consultas no modo EXPLÍCITO. Por defeito, o modo PATH gera um <row> wrapper de elemento para cada linha do conjunto de resultados. Pode, opcionalmente, especificar o nome de um elemento. Se o fizeres, o nome especificado é usado como nome do elemento do wrapper. Se fornecer uma string vazia (FOR XML PATH ('')), não é gerado nenhum elemento de envolvimento. Para mais informações, veja Usar Modo PATH com FOR XML.
MLDATA
Especifica que deve ser devolvido um esquema inline XML-Data Reduced (XDR). O esquema é inserido no documento como um esquema em linha. Para uma amostra funcional, veja Usar Modo RAW com FOR XML.
XMLSCHEMA
Devolve um Esquema XML (XSD) W3C inline. Pode, opcionalmente, especificar um URI de namespace alvo ao especificar esta diretiva. Isto devolve o namespace especificado no esquema. Para mais informações, consulte Gerar um Esquema XSD Inline. Para uma amostra funcional, veja Usar Modo RAW com FOR XML.
ELEMENTOS
Se a opção ELEMENTS for especificada, as colunas são devolvidas como subelementos. Caso contrário, estão mapeados para atributos XML. Esta opção é suportada apenas nos modos RAW, AUTO e PATH. Pode opcionalmente especificar XSINIL ou ABSENT ao usar esta diretiva. O XSINIL especifica que um elemento que tenha um atributo xsi:nil definido como True seja criado para valores de coluna NULL. Por defeito ou quando ABSENT é especificado juntamente com ELEMENTS, não são criados elementos para valores NULL. Para um exemplo funcional, veja Use RAW Mode com FOR XML e Use AUTO Mode com FOR XML.
BASE BINÁRIA64
Se a opção BINARY Base64 for especificada, quaisquer dados binários devolvidos pela consulta são representados em formato codificado base64. Para recuperar dados binários usando os modos RAW e EXPLICIT, esta opção deve ser especificada. No modo AUTO, os dados binários são retornados como referência por defeito. Para uma amostra funcional, veja Usar Modo RAW com FOR XML.
TYPE
Especifica que a consulta devolve os resultados como tipo xml . Para mais informações, consulte a Diretiva TYPE em FOR XML Queries.
ROOT [('RootName')]
Especifica que um único elemento de topo é adicionado ao XML resultante. Podes opcionalmente especificar o nome do elemento raiz a gerar. O valor predefinido é <root>.
Observações
Para a documentação da cláusula SELECT... FOR XML que também se aplica ao Azure SQL Database ou SQL Database no Fabric, consulte FOR XML (SQL Server).