Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do
AzureInstância
Gerenciada de SQL do AzurePonto de extremidade de análise de SQL no Microsoft Fabric
Warehouse no Microsoft Fabric
Banco de dados SQL no Microsoft Fabric
Use a FOR cláusula para especificar uma das opções a seguir para os resultados da consulta.
- Especifique
FOR BROWSEpara permitir atualizações ao exibir os resultados da consulta em um cursor de modo de navegação. - Especifique para formatar
FOR XMLos resultados da consulta como XML. - Especifique
FOR JSONpara formatar os resultados da consulta como JSON.
Convenções de sintaxe de Transact-SQL
Syntax
[ FOR { BROWSE | <XML> | <JSON> } ]
<XML> ::=
XML
{
{ RAW [ ( 'ElementName' ) ] | AUTO }
[
<CommonDirectivesForXML>
[ , { XMLDATA | XMLSCHEMA [ ( 'TargetNameSpaceURI' ) ] } ]
[ , ELEMENTS [ XSINIL | ABSENT ]
]
| EXPLICIT
[
<CommonDirectivesForXML>
[ , XMLDATA ]
]
| PATH [ ( 'ElementName' ) ]
[
<CommonDirectivesForXML>
[ , ELEMENTS [ XSINIL | ABSENT ] ]
]
}
<CommonDirectivesForXML> ::=
[ , BINARY BASE64 ]
[ , TYPE ]
[ , ROOT [ ( 'RootName' ) ] ]
<JSON> ::=
JSON
{
{ AUTO | PATH }
[
[ , ROOT [ ( 'RootName' ) ] ]
[ , INCLUDE_NULL_VALUES ]
[ , WITHOUT_ARRAY_WRAPPER ]
]
}
PARA NAVEGAR
BROWSE
Especifica que as atualizações são permitidas ao exibir os dados em um cursor de modo de navegação DB-Library. Você pode procurar uma tabela em um aplicativo se a tabela incluir uma coluna de carimbo de data/hora , a tabela tiver um índice exclusivo e a opção FOR BROWSE estiver no final das SELECT instruções enviadas a uma instância do SQL Server.
Note
Você não pode usar a instrução <lock_hint> HOLDLOCK em uma SELECT instrução que inclui a opção FOR BROWSE .
FOR BROWSE não pode aparecer em instruções que SELECT o UNION operador une.
Note
Quando as colunas de chave de índice exclusivas de uma tabela são anuláveis e a tabela está no lado interno de uma junção externa, o modo de navegação não dá suporte ao índice.
O modo de busca lhe permite verificar as linhas na tabela do SQL Server e atualizar os dados uma linha de cada vez na tabela. Para acessar uma tabela do SQL Server em seu aplicativo no modo de procura, use uma das duas opções a seguir:
A
SELECTinstrução que você usa para acessar os dados da tabela do SQL Server deve terminar com as palavras-chaveFOR BROWSE. Quando você ativa a opção para usar oFOR BROWSEmodo de navegação, as tabelas temporárias são criadas.Você deve executar a seguinte instrução Transact-SQL para ativar o modo de navegação usando a opção
NO_BROWSETABLE:SET NO_BROWSETABLE ON;Quando você ativa a opção
NO_BROWSETABLE, todas asSELECTinstruções se comportam como se a opçãoFOR BROWSEfosse acrescentada às instruções. No entanto, a opçãoNO_BROWSETABLEnão cria as tabelas temporárias que a opçãoFOR BROWSEgeralmente usa para enviar os resultados para seu aplicativo.
Quando você tenta acessar os dados de tabelas do SQL Server no modo de navegação usando uma SELECT consulta que envolve uma instrução OUTER JOIN e quando um índice exclusivo é definido na tabela que está presente no lado interno de uma instrução OUTER JOIN , o modo de navegação não dá suporte ao índice exclusivo. O modo de navegação dá suporte ao índice exclusivo somente quando todas as colunas de chave de índice exclusivas podem aceitar NULL valores. O modo de navegação não oferecerá suporte ao índice exclusivo se as seguintes condições forem verdadeiras:
Você tenta acessar os dados de tabelas do SQL Server no modo de navegação usando uma
SELECTconsulta que envolve uma instruçãoOUTER JOIN.Um índice exclusivo é definido na tabela que está presente no lado interno de uma instrução
OUTER JOIN.
Para reproduzir esse comportamento no modo de busca, siga estas etapas:
No SQL Server Management Studio, crie um banco de dados chamado
SampleDB.SampleDBNo banco de dados, crie umatlefttabela e umatrighttabela que contêm uma única coluna chamadac1. Defina um índice exclusivo na colunac1na tabelatlefte defina a coluna para aceitar valoresNULL. Para fazer isso, execute as seguintes instruções Transact-SQL em uma janela de consulta apropriada:CREATE TABLE tleft (c1 INT NULL UNIQUE); GO CREATE TABLE tright (c1 INT NULL); GOInsira vários valores na tabela
tlefte na tabelatright. Insira um valorNULLna tabelatleft. Para fazer isso, execute as seguintes instruções Transact-SQL na janela de consulta:INSERT INTO tleft VALUES (2); INSERT INTO tleft VALUES (NULL); INSERT INTO tright VALUES (1); INSERT INTO tright VALUES (3); INSERT INTO tright VALUES (NULL);Ative a opção
NO_BROWSETABLE. Para fazer isso, execute as seguintes instruções Transact-SQL na janela de consulta:SET NO_BROWSETABLE ON;Acesse os dados na tabela
tlefte na tabelatrightusando uma instrução de junção externa na consultaSELECT. Verifique se a tabelatleftestá no lado interno da instrução de junção externa. Para fazer isso, execute as seguintes instruções Transact-SQL na janela de consulta:SELECT tleft.c1 FROM tleft RIGHT OUTER JOIN tright ON tleft.c1 = tright.c1 WHERE tright.c1 <> 2;Observe a seguinte saída no painel resultados do:
c1 --- NULL NULL
Depois de executar a SELECT consulta para acessar as tabelas no modo de navegação, o conjunto de resultados da SELECT consulta contém dois NULL valores para a c1 coluna na tabela devido tleft à definição da RIGHT OUTER JOIN instrução. Portanto, no conjunto de resultados, você não pode distinguir entre os NULL valores provenientes da tabela e os NULL valores que a RIGHT OUTER JOIN instrução introduziu. Você poderá receber resultados incorretos se a consulta precisar ignorar os NULL valores do conjunto de resultados.
Note
Se as colunas incluídas no índice exclusivo não aceitarem NULL valores, todos os NULL valores no conjunto de resultados serão introduzidos pela instrução RIGHT OUTER JOIN .
FOR XML
XML
Especifica que os resultados de uma consulta serão retornados como um documento XML. Um dos seguintes modos XML deve ser especificado: RAW, AUTO, EXPLICIT. Para obter mais informações sobre dados XML e o SQL Server, confira FOR XML (SQL Server).
RAW [ ('NomeElemento') ]
Usa o resultado da consulta e transforma cada linha no conjunto de resultados em um elemento XML com um identificador genérico <row /> como a marca de elemento. Opcionalmente, é possível especificar um nome para o elemento de linha. A saída XML resultante usa o ElementName especificado como o elemento de linha gerado para cada linha. Para obter mais informações, consulte Usar o modo RAW com FOR XML.
AUTO
Retorna os resultados da consulta em uma á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 obter mais informações, consulte Usar o modo AUTO com FOR XML.
EXPLICIT
Especifica que a forma da árvore XML resultante está explicitamente definida. Usando esse modo, você deve escrever consultas de uma maneira específica para que elas especifiquem informações adicionais sobre o aninhamento desejado explicitamente. Para obter mais informações, consulte Usar o modo EXPLICIT com FOR XML.
XMLDATA
Retorna o esquema XDR embutido, mas não adiciona o elemento raiz ao resultado. Se você especificar XMLDATA, o esquema XDR será acrescentado ao documento.
Important
A XMLDATA diretiva foi preterida. Use a geração XSD para RAW e AUTO modos. Não há substituição para a XMLDATA diretiva no EXPLICIT modo. Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam.
Suprimir quebras de linha indesejadas: você pode usar o SSMS (SQL Server Management Studio) para executar uma consulta que usa a FOR XML cláusula. Às vezes, uma grande quantidade de XML é retornada e exibida na célula de uma grade. A cadeia de caracteres XML pode ser mais longa que uma célula de grade do SSMS e reter em uma única linha. Nesses casos, o SSMS pode inserir caracteres de quebra de linha entre segmentos longos de toda a cadeia de caracteres XML. Essas quebras de linha podem ocorrer no meio de uma subcadeia de caracteres que não deve ser dividida entre linhas. Você pode impedir as quebras de linha usando um AS XMLDATAde conversão. Essa solução também pode ser aplicada quando você usa FOR JSON PATH, como na seguinte instrução SELECT de exemplo Transact-SQL:
SELECT CAST (
(SELECT column1,
column2
FROM my_table
FOR XML PATH ('')) AS VARCHAR (MAX)
) AS XMLDATA;
XMLSCHEMA [ ('TargetNameSpaceURI') ]
Retorna o esquema XSD embutido. Opcionalmente, você pode especificar um URI de namespace de destino ao especificar esta diretiva, o que retorna o namespace especificado no esquema. Para obter mais informações, consulte Gerar um esquema XSD embutido.
ELEMENTS
Especifica que as colunas são retornadas como subelementos. Caso contrário, a consulta os mapeia para atributos XML. Essa opção tem suporte somente em RAWmodos e PATH modosAUTO. Para obter mais informações, consulte Usar o modo RAW com FOR XML.
XSINIL
Especifica que um elemento com xsi:nil o atributo definido como True é criado para NULL valores de coluna. Você só pode especificar essa opção com a ELEMENTS diretiva. Para obter mais informações, consulte:
ABSENT
Indica que, para NULL valores de coluna, os elementos XML correspondentes não são adicionados no resultado XML. Especifique essa opção somente com ELEMENTS.
CAMINHO [ ('NomeDeElemento') ]
Gera um wrapper de elemento <row> para cada linha no conjunto de resultados. Opcionalmente, você pode especificar um nome de elemento para o wrapper de elemento <row>. Se você fornecer uma cadeia de caracteres vazia, por FOR XML PATH (''))exemplo, um elemento wrapper não será gerado. Usar PATH pode fornecer uma alternativa mais simples para consultas escritas usando a diretiva EXPLICIT. Para obter mais informações, consulte Usar o modo PATH com FOR XML.
BASE64 BINÁRIA
Especifica que a consulta retorna os dados binários em formato binário codificado em base64. Ao recuperar dados binários usando RAW e EXPLICIT modo, você deve especificar essa opção. Essa opção é o padrão no AUTO modo.
TYPE
Especifica que a consulta retorna os resultados como um tipo XML. Para obter mais informações, consulte a diretiva TYPE em consultas FOR XML.
ROOT [ ('RootName') ]
Especifica que um único elemento de nível superior é adicionado ao XML resultante. Opcionalmente, você pode especificar o nome do elemento raiz a ser gerado. Se você não especificar o nome raiz, o elemento padrão <root> será adicionado.
Para obter mais informações, consulte FOR XML (SQL Server).
Example
O exemplo a seguir especifica FOR XML AUTO com as opções TYPE e XMLSCHEMA. Devido à opção TYPE , a consulta retorna o conjunto de resultados para o cliente como um tipo xml . A opção XMLSCHEMA especifica que o esquema XSD embutido é incluído nos dados XML retornados e a opção ELEMENTS especifica que o resultado XML é centrado em elemento.
USE AdventureWorks2025;
SELECT p.BusinessEntityID,
FirstName,
LastName,
PhoneNumber AS Phone
FROM Person.Person AS p
INNER JOIN Person.PersonPhone AS pph
ON p.BusinessEntityID = pph.BusinessEntityID
WHERE LastName LIKE 'G%'
ORDER BY LastName, FirstName
FOR XML AUTO, TYPE, XMLSCHEMA, ELEMENTS XSINIL;
PARA JSON
Remarks
No Fabric Data Warehouse, a consulta deve terminar com FOR JSON, portanto, você não pode usá-la dentro de subconsultas.
JSON
Especifique FOR JSON para retornar os resultados de uma consulta formatada como texto JSON. Você também precisa especificar um dos seguintes modos JSON: AUTO ou PATH. Para obter mais informações sobre a FOR JSON cláusula, consulte Format query results as JSON with FOR JSON.
AUTO
Formate a saída JSON automaticamente com base na estrutura da instrução SELECT especificando FOR JSON AUTO. Para obter mais informações e exemplos, consulte Formatar saída JSON automaticamente com o modo AUTO.
PATH
Obtenha controle total sobre o formato da saída JSON especificando FOR JSON PATH.
PATH modo permite criar objetos wrapper e aninhar propriedades complexas. Para obter mais informações e exemplos, consulte Formatar saída JSON aninhada com o modo PATH.
INCLUDE_NULL_VALUES
Inclua NULL valores na saída JSON especificando a opção INCLUDE_NULL_VALUES com a cláusula FOR JSON. Se você não especificar essa opção, a saída não incluirá propriedades JSON para valores NULL nos resultados da consulta. Para obter mais informações e exemplos, consulte Incluir Valores Nulos em JSON – Opção INCLUDE_NULL_VALUES.
ROOT [ ('RootName') ]
Adicione um único elemento de nível superior à saída JSON especificando a opção ROOT com a cláusula FOR JSON. Se você não especificar a opção ROOT, a saída JSON não terá um elemento raiz. Para obter mais informações e exemplos, consulte Adicionar um nó raiz à saída JSON com a opção ROOT.
WITHOUT_ARRAY_WRAPPER
Remova os colchetes que cercam a saída JSON por padrão especificando a opção WITHOUT_ARRAY_WRAPPER com a cláusula FOR JSON. Se você não especificar essa opção, a saída JSON será colocada entre colchetes. Use a opção WITHOUT_ARRAY_WRAPPER para gerar um único objeto JSON como saída. Veja mais informações em Remover os colchetes da saída JSON - opção WITHOUT_ARRAY_WRAPPER.
Para obter mais informações, consulte Formatar os resultados da consulta como JSON com FOR JSON.