Предложение FOR (Transact-SQL)

Предложение FOR используется для задания параметра BROWSE или XML. Параметры BROWSE и XML не связаны друг с другом.

Значок ссылки на разделСоглашения о синтаксисе в 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' ) ] ]

Аргументы

  • BROWSE
    Активирует возможность обновления данных во время их просмотра с помощью курсора в режиме обзора DB-Library. Таблицу можно просмотреть внутри приложения, если в таблице содержится столбец timestamp, если таблице присвоен уникальный индекс или если в конце инструкции SELECT, отсылаемой экземпляру SQL Server, имеется параметр FOR BROWSE.

    ms173812.note(ru-ru,SQL.90).gifПримечание.
    Нельзя использовать синтаксис <lock_hint> HOLDLOCK для инструкции SELECT, включающей в себя параметр FOR BROWSE.

    Параметр FOR BROWSE не может быть использован в инструкциях SELECT, соединенных оператором UNION.

    ms173812.note(ru-ru,SQL.90).gifПримечание.
    Если ключевые столбцы уникального индекса таблицы могут принимать неопределенные значения, а таблица находится внутри внешнего соединения, индексы в режиме обзора не поддерживаются.
  • XML
    Задает возврат результатов запроса в виде XML-документа. Должен быть задан один из следующих режимов XML: RAW, AUTO, EXPLICIT. Дополнительные сведения об XML-данных и Analysis Services см. в разделе Создание XML с помощью предложения FOR XML.
  • RAW [ ('ElementName') ]
    Получает результат запроса и преобразует каждую строку результирующего набора в элемент XML, для которого в качестве тега используется общий идентификатор <row />. Дополнительно можно задать имя для элемента строки. Для результирующего выхода в формате XML в качестве элементов, создаваемых для каждой строки, используются определенные ElementName . Дополнительные сведения см. в разделах Использование режима RAW и Расширения режима RAW.
  • AUTO
    Возвращает результаты запроса в виде простого вложенного дерева XML. Каждая таблица предложения FROM, для которой в предложении SELECT приведен хотя бы один столбец, отображается как элемент XML. Столбцы, перечисленные в предложении SELECT, сопоставлены с соответствующими атрибутами элемента. Дополнительные сведения см. в разделах Использование режима AUTO и Расширения режима AUTO.
  • EXPLICIT
    Задает явное определение формы результирующего XML-дерева. При использовании данного режима запросы должны записываться таким образом, чтобы дополнительные сведения о вложениях могли быть заданы явно. Дополнительные сведения см. в разделах Применение режима EXPLICIT и Расширения режима EXPLICIT.
  • XMLDATA
    Возвращает встроенную XDR-схему, не добавляя корневой элемент к результату. При задании параметра XMLDATA XDR-схема добавляется к документу.
  • XMLSCHEMA [ ('TargetNameSpaceURI') ]
    Возвращает встроенную XSD-схему. При задании указанной директивы, возвращающей заданное пространство имен схемы, дополнительно можно задать URI целевого пространства имен. Дополнительные сведения см. в разделе Создание встроенных XSD-схем.
  • ELEMENTS
    Задает возврат столбцов в виде вложенных элементов. В противном случае столбцы будут сопоставлены с XML-атрибутами. Данный параметр поддерживается только в режимах RAW, AUTO и PATH. Дополнительные сведения см. в разделе Расширения режима RAW.
  • ABSENT
    Указывает, что соответствующие XML-элементы для столбцов со значениями NULL к XML-результату не добавляются. Указывайте данный параметр только с директивой ELEMENTS.
  • PATH [ ('ElementName') ]
    Создает упаковщик элементов <строки> для каждой строки в результирующем наборе. Для упаковщика элементов <строки> можно дополнительно задать имя элемента. При задании пустой строки, например FOR XML PATH ('') ), упаковщик элементов не создается. Использование директивы PATH дает более простой способ написания запросов, чем написание запросов с помощью директивы EXPLICIT. Дополнительные сведения см. в разделе Использование режима PATH.
  • BINARY BASE64
    Задает возврат двоичных данных запросом в двоичном зашифрованном формате base64. При извлечении двоичных данных с использованием режимов RAW и EXPLICIT необходимо указывать этот параметр. В режиме AUTO это указывается по умолчанию.
  • ROOT [ ('RootName') ]
    Задает добавление единичного элемента высшего уровня к результирующему XML-документу. Дополнительно можно указать имя корневого элемента, который необходимо сформировать. Если имя корневого элемента не задано, то добавляется <корневой> элемент по умолчанию.

Примеры

В данном примере задается параметр FOR XML AUTO с параметрами TYPE и XMLSCHEMA. Благодаря параметру TYPE результирующий набор возвращается клиенту в формате xml. Параметр XMLSCHEMA определяет встроенную XSD-схему, включаемую в возвращаемые XML-данные, а параметр ELEMENTS указывает, что результаты в формате XML основываются на элементах.

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;

См. также

Справочник

SELECT (Transact-SQL)

Другие ресурсы

Использование предложений FOR XML и OPENXML для публикации и обработки XML-данных

Справка и поддержка

Получение помощи по SQL Server 2005