Share via


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 列が含まれる場合、テーブルに一意なインデックスがある場合、および SQL Server に送られる SELECT ステートメントの最後に FOR BROWSE オプションがある場合、アプリケーションの中でテーブルを参照できます。

    ms173812.note(ja-jp,SQL.90).gifメモ :
    <lock_hint> HOLDLOCK は、FOR BROWSE オプションを含む SELECT ステートメントでは使えません。

    FOR BROWSE は、UNION 演算子によって結合された SELECT ステートメントでは使えません。

    ms173812.note(ja-jp,SQL.90).gifメモ :
    テーブルの一意なインデックス キー列が NULL 値を許容し、かつそのテーブルが外部結合の内部にある場合、そのインデックスはブラウズ モードではサポートされません。
  • XML
    クエリの結果を XML ドキュメントとして返します。RAW、AUTO、EXPLICIT のいずれかの XML モードを指定する必要があります。XML データおよび SQL Server の詳細については、「FOR XML を使用した XML の構築」を参照してください。
  • RAW [ ('ElementName') ]
    クエリの結果を取得し、結果セット内の各行を、要素タグとして汎用識別子 <row /> が指定されている XML 要素に変換します。必要に応じて、その行要素に名前を指定することもできます。変換結果の XML 出力では、各行に対して生成された行要素として、指定した ElementName が使用されます。詳細については、「RAW モードの使用」および「RAW モードの機能強化」を参照してください。
  • AUTO
    クエリの結果を単純な入れ子の XML ツリーで返します。FROM 句に含まれる各テーブルは、そのうち少なくとも 1 つの列が 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
    列の値が NULL の場合、対応する XML 要素を XML 結果に追加しません。このオプションは、ELEMENTS でのみ指定してください。
  • PATH [ ('ElementName') ]
    結果セットの各行に対して <row> 要素ラッパーを生成します。必要に応じて、<row> 要素ラッパーに要素名を指定することもできます。FOR XML PATH ('') ) などの空文字列を指定すると、ラッパー要素は生成されません。EXPLICIT ディレクティブを使用するよりも、PATH を使用した方が、クエリが単純になる場合があります。詳細については、「PATH モードの使用」を参照してください。
  • BINARY BASE64
    クエリは、バイナリ データをバイナリ ベース 64 エンコード形式で返します。RAW モードおよび EXPLICIT モードでバイナリ データを取得する場合は、このオプションを指定する必要があります。AUTO モードの場合は、これは既定値です。
  • ROOT [ ('RootName') ]
    単一のトップレベル要素を、結果として生成される XML に追加します。必要に応じて、生成するルート要素名を指定することもできます。オプションのルート名を指定しない場合は、既定の <root> 要素が追加されます。

次の例では、FOR XML AUTOTYPE オプションおよび XMLSCHEMA オプションと共に指定しています。TYPE オプションを指定しているため、結果セットはクライアントに xml 型として返されます。XMLSCHEMA オプションは、返される XML データにインライン XSD スキーマが含まれることを指定し、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 の参考資料の入手