Udostępnij za pomocą


Podstawowa składnia klauzuli FOR XML

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBaza danych SQL w usłudze Microsoft Fabric

Tryb FOR XML może być RAW, AUTO, EXPLICIT lub PATH. Określa kształt wynikowego kodu XML.

Ważne

Dyrektywa XMLDATA dla opcji FOR XML jest przestarzała. Używaj generowania XSD w przypadku trybów RAW i AUTO. Brak zamiany dyrektywy XMLDATA w trybie EXPLICT. Ta funkcja zostanie usunięta w przyszłej wersji programu SQL Server. Unikaj używania tej funkcji w nowych pracach programistycznych i zaplanuj modyfikowanie aplikacji, które obecnie korzystają z tej funkcji.

Składnia

Poniżej znajduje się podstawowa składnia opisana w klauzuli 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 [('ElementName')]

Pobiera wynik zapytania i przekształca każdy wiersz w zestawie wyników w element XML, który ma identyfikator ogólny , <row />jako tag elementu. Opcjonalnie można określić nazwę elementu wiersza podczas korzystania z tej dyrektywy. Wynikowy kod XML będzie używał elementu wiersza określonego jako ElementName dla każdego wiersza. Aby uzyskać więcej informacji, zobacz Use RAW Mode with FOR XML (Używanie trybu RAW z językiem XML).

AUTO

Zwraca wyniki zapytania w prostym, zagnieżdżonym drzewie XML. Każda tabela w klauzuli FROM, dla której co najmniej jedna kolumna jest wymieniona w klauzuli SELECT, jest reprezentowana jako element XML. Kolumny wymienione w klauzuli SELECT są mapowane na odpowiednie atrybuty elementu. Aby uzyskać więcej informacji, zobacz Use AUTO Mode with FOR XML (Używanie trybu automatycznego z językiem XML).

WYRAŹNY

Określa, że kształt wynikowego drzewa XML jest zdefiniowany jawnie. Korzystając z tego trybu, zapytania muszą być zapisywane w określony sposób, aby dodatkowe informacje o zagnieżdżeniu, którego oczekujesz, zostały jawnie określone. Aby uzyskać więcej informacji, zobacz Use EXPLICIT Mode with FOR XML (Używanie trybu JAWNego z językiem XML).

ŚCIEŻKA

Zapewnia prostszy sposób łączenia elementów i atrybutów oraz wprowadzenia dodatkowego zagnieżdżania do reprezentowania złożonych właściwości. Można używać zapytań w trybie FOR XML EXPLICIT do konstruowania tego rodzaju XML z zestawu wierszy, ale tryb PATH zapewnia prostszą alternatywę dla potencjalnie kłopotliwych zapytań w trybie EXPLICIT. Tryb PATH, w połączeniu z możliwością zapisywania zagnieżdżonych zapytań FOR XML oraz użycia dyrektywy TYPE do zwracania wystąpień typu xml, umożliwia pisanie zapytań o mniejszej złożoności. Zapewnia alternatywę do pisania większości zapytań w trybie JAWNYM. Domyślnie tryb PATH generuje opakowanie elementu dla każdego wiersza w zestawie wyników. Opcjonalnie możesz określić nazwę elementu. Jeśli tak, określona nazwa jest używana jako nazwa elementu opakowania. Jeśli podasz pusty ciąg (FOR XML PATH ('')), nie zostanie wygenerowany żaden element opakowania. Aby uzyskać więcej informacji, zobacz Use PATH Mode with FOR XML (Używanie trybu PATH z językiem XML).

MLDATA

Określa, że należy zwrócić wbudowany schemat XML-Data Zredukowany (XDR). Schemat jest dodawany do dokumentu jako schemat wbudowany. Aby zapoznać się z przykładem roboczym, zobacz Use RAW Mode with FOR XML (Używanie trybu RAW z plikiem FOR XML).

XMLSCHEMA

Zwraca wbudowany schemat XML W3C (XSD). Opcjonalnie można określić identyfikator URI docelowej przestrzeni nazw podczas określania tej dyrektywy. Zwraca określoną przestrzeń nazw w schemacie. Aby uzyskać więcej informacji, zobacz Generowanie wbudowanego schematu XSD. Aby zapoznać się z przykładem roboczym, zobacz Use RAW Mode with FOR XML (Używanie trybu RAW z plikiem FOR XML).

PIERWIASTKI

Jeśli określono opcję ELEMENTS, kolumny są zwracane jako podelementy. W przeciwnym razie są mapowane na atrybuty XML. Ta opcja jest obsługiwana tylko w trybach RAW, AUTO i PATH. Opcjonalnie można określić XSINIL lub ABSENT podczas korzystania z tej dyrektywy. XSINIL określa, że element, który ma atrybut xsi:nil ustawiony na wartość True, należy utworzyć dla wartości kolumn null. Domyślnie lub gdy funkcja ABSENT jest określona razem z elementami ELEMENTS, żadne elementy nie są tworzone dla wartości NULL. Aby zapoznać się z roboczym przykładem, zobacz Używanie trybu RAW z językiem XML i Używanie trybu AUTOMATYCZNEGO z językiem XML.

BINARNE BASE64

Jeśli określono opcję BINARY Base64, wszystkie dane binarne zwracane przez zapytanie są reprezentowane w formacie zakodowanym w formacie base64. Aby pobrać dane binarne przy użyciu trybu RAW i EXPLICIT, należy określić tę opcję. W trybie AUTO dane binarne są domyślnie zwracane jako odwołanie. Aby zapoznać się z przykładem roboczym, zobacz Use RAW Mode with FOR XML (Używanie trybu RAW z plikiem FOR XML).

TYPE

Określa, że zapytanie zwraca wyniki jako typ xml . Aby uzyskać więcej informacji, zobacz TYPE Directive in FOR XML Queries (Dyrektywa TYPE w przypadku zapytań XML).

ROOT [('RootName')]

Określa, że do wynikowego kodu XML jest dodawany pojedynczy element najwyższego poziomu. Opcjonalnie możesz określić nazwę elementu głównego do wygenerowania. Domyślna wartość to <root>.

Uwagi

Aby uzyskać dokumentację klauzuli SELECT... FOR XML, która dotyczy również usługi Azure SQL Database lub SQL Database w Fabric, zobacz FOR XML (SQL Server).