FOR (cláusula de Transact-SQL)

La cláusula FOR se utiliza para especificar la opción BROWSE o XML. BROWSE y XML son opciones no relacionadas.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

[ 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' ) ] ]

Argumentos

  • BROWSE
    Especifica que se permiten las actualizaciones mientras se visualizan los datos en el cursor del modo de exploración de DB-Library. Una tabla se puede explorar en una aplicación si la tabla incluye una columna timestamp, la tabla tiene un índice único y la opción FOR BROWSE está al final de las instrucciones SELECT enviadas a una instancia de SQL Server.

    [!NOTA] No se puede utilizar <lock_hint> HOLDLOCK en una instrucción SELECT que incluya la opción FOR BROWSE.

    FOR BROWSE no puede aparecer en instrucciones SELECT combinadas mediante el operador UNION.

    [!NOTA] Cuando las columnas de clave de índice único de una tabla pueden aceptar valores NULL, y la tabla está en la parte interna de la combinación externa, el índice no se admite en el modo de exploración.

  • XML
    Especifica que el resultado de una consulta se devolverá como documento XML. Debe especificarse uno de los siguientes modos XML: RAW, AUTO, EXPLICIT. Para obtener más información acerca de datos XML y SQL Server, vea Generar XML mediante FOR XML.
  • RAW [ ('ElementName') ]
    Obtiene el resultado de la consulta y transforma cada fila del conjunto de resultados en un elemento XML con un identificador genérico <row /> como etiqueta del elemento. Opcionalmente, puede especificar un nombre para el elemento de fila. La salida XML resultante utiliza el parámetro ElementName especificado como el elemento de fila generado para cada fila. Para obtener más información, vea Usar el modo RAW y Mejoras del modo RAW.
  • AUTO
    Devuelve los resultados de la consulta en un árbol anidado XML sencillo. Cada tabla de la cláusula FROM, para la que al menos se presenta una columna en la cláusula SELECT, se representa como elemento XML. A las columnas presentadas en la cláusula SELECT se les asignan los atributos de elemento apropiados. Para obtener más información, vea Usar el modo AUTO y Mejoras del modo AUTO.
  • EXPLICIT
    Especifica que la forma del árbol XML resultante está definida explícitamente. Con este modo, es necesario escribir las consultas de una cierta manera, de modo que se pueda especificar explícitamente información adicional acerca de la anidación deseada. Para obtener más información, vea Usar el modo EXPLICIT y Mejoras del modo EXPLICIT.
  • XMLDATA
    Devuelve el esquema XDR en línea, pero no agrega el elemento raíz al resultado. Si se especifica XMLDATA, el esquema XDR se agrega al documento.
  • XMLSCHEMA [ ('TargetNameSpaceURI') ]
    Devuelve el esquema XSD en línea. Opcionalmente puede especificar un URI de espacio de nombres de destino al especificar esta directiva, que devuelve el espacio de nombres especificado en el esquema. Para obtener más información, vea Generación de esquemas XSD en línea.
  • ELEMENTS
    Especifica que las columnas se devuelven como subelementos. Sin embargo, se les asignan atributos XML. Esta opción sólo se admite en los modos RAW, AUTO y PATH. Para obtener más información, vea Mejoras del modo RAW.
  • ABSENT
    Indica que para los valores de columna NULL, no se agregarán los elementos XML correspondientes en el resultado XML. Especifique esta opción sólo con ELEMENTS.
  • PATH [ ('ElementName') ]
    Genera un contenedor del elemento de <row> para cada fila en el conjunto de resultados. Opcionalmente, especifique un nombre de elemento para el contenedor del elemento <row>. Si se proporciona una cadena vacía, como FOR XML PATH ('') , no se genera un elemento contenedor. El uso de PATH puede proporcionar una alternativa más sencilla a consultas escritas con la directiva EXPLICIT. Para obtener más información, vea Usar el modo PATH.
  • BINARY BASE64
    Especifica que la consulta devuelve los datos binarios en el formato codificado BINARY BASE64. Al recuperar datos binarios mediante el modo RAW y EXPLICIT, se debe especificar esta opción. Éste es el valor predeterminado en el modo AUTO.
  • ROOT [ ('RootName') ]
    Especifica que se va a agregar un solo elemento de nivel superior al XML resultante. Opcionalmente puede especificar el nombre del elemento raíz que se va a generar. Si no se especifica el nombre de raíz opcional, se agrega el elemento <root> predeterminado.

Ejemplos

En el siguiente ejemplo se especifica FOR XML AUTO con las opciones TYPE y XMLSCHEMA. Debido a la opción TYPE, el conjunto de resultados que se devuelve al cliente es de tipo xml. La opción XMLSCHEMA especifica que el esquema XSD en línea está incluido en los datos XML devueltos y la opción ELEMENTS especifica que el resultado XML está centrado en elementos.

USE AdventureWorks;
GO
SELECT ContactID, FirstName, LastName, Phone
FROM Person.Contact
WHERE LastName LIKE 'G%'
ORDER BY LastName, FirstName 
FOR XML AUTO, TYPE, XMLSCHEMA, ELEMENTS XSINIL;

Vea también

Referencia

SELECT (Transact-SQL)

Otros recursos

Usar FOR XML y OPENXML para publicar y procesar datos XML

Ayuda e información

Obtener ayuda sobre SQL Server 2005