Aracılığıyla paylaş


FOR XML yan tümcesinin temel söz dizimi

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

FOR XML modu RAW, AUTO, EXPLICIT veya PATH olabilir. Sonuçta elde edilen XML'in şeklini belirler.

Önemli

FOR XML seçeneğine yönelik XMLDATA yönergesi kullanım dışıdır. RAW ve AUTO modları söz konusu olduğunda XSD oluşturma özelliğini kullanın. EXPLICIT modunda XMLDATA yönergesi için bir ikame yoktur. Bu özellik, SQL Server'ın gelecek bir sürümünde kaldırılacaktır. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın.

Sözdizimi

FOR Yan Tümcesi (Transact-SQL) bölümünde açıklanan temel söz dizimi aşağıdadır.

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

Sorgu sonucunu alır ve sonuç kümesindeki her satırı, öğe etiketi olarak genel tanımlayıcısı <row />olan bir XML öğesine dönüştürür. Bu yönergeyi kullanırken isteğe bağlı olarak satır öğesi için bir ad belirtebilirsiniz. Sonuçta elde edilen XML, her satır için oluşturulan satır öğesi olarak belirtilen ElementName öğesini kullanır. Daha fazla bilgi için bkz. FOR XML ile RAW Modu kullanma.

AUTO

Sorgu sonuçlarını basit, iç içe yerleştirilmiş bir XML ağacında döndürür. SELECT yan tümcesinde en az bir sütunun listelendiği FROM yan tümcesindeki her tablo bir XML öğesi olarak temsil edilir. SELECT yan tümcesinde listelenen sütunlar uygun öğe özniteliklerine eşlenir. Daha fazla bilgi için bkz. FOR XML ile AUTO Mode kullanma.

AÇIK

Sonuçta elde edilen XML ağacının şeklinin açıkça tanımlandığını belirtir. Bu mod kullanıldığında, istediğiniz iç içe yerleştirme hakkında ek bilgilerin açıkça belirtilmesi için sorguların belirli bir şekilde yazılması gerekir. Daha fazla bilgi için bkz . FOR XML ile AÇıK Modu kullanma.

DİZİN

Öğeleri ve öznitelikleri karıştırmak ve karmaşık özellikleri temsil etmek için ek iç içe yerleştirme eklemek için daha basit bir yol sağlar. Bir satır kümesinden bu tür XML oluşturmak için FOR XML EXPLICIT modu sorgularını kullanabilirsiniz, ancak PATH modu, olası zahmetli AÇıK mod sorgularına daha basit bir alternatif sağlar. PATH modu, iç içe FOR XML sorguları yazma özelliği ve xml türü örnekleri döndürmeye yönelik TYPE yönergesi ile birlikte, daha az karmaşıklığı olan sorgular yazmanızı sağlar. Çoğu EXPLICIT mod sorgusunu yazmaya alternatif sunar. Varsayılan olarak, PATH modu sonuç kümesindeki her satır için bir <row> öğe sarmalayıcı oluşturur. İsteğe bağlı olarak bir öğe adı belirtebilirsiniz. Bunu yaparsanız, belirtilen ad sarmalayıcı öğesi adı olarak kullanılır. Boş bir dize (FOR XML PATH (''))sağlarsanız, hiçbir sarmalayıcı öğesi oluşturulmaz. Daha fazla bilgi için bkz. FOR XML ile PATH Modu'nu kullanma.

MLDATA

Satır içi bir XML-Data Reduced (XDR) şemasının döndürülmesi gerektiğini belirtir. Şema, belgeye satır içi şema olarak eklenir. Çalışan bir örnek için bkz. FOR XML ile RAW Modu kullanma.

XMLSCHEMA

Satır içi bir W3C XML Şeması (XSD) döndürür. Bu yönergeyi belirtirken isteğe bağlı olarak bir hedef ad alanı URI'sini belirtebilirsiniz. Bu, şemada belirtilen ad alanını döndürür. Daha fazla bilgi için bkz. Satır içi XSD Şeması Oluşturma. Çalışan bir örnek için bkz. FOR XML ile RAW Modu kullanma.

ELEMANLAR

ELEMENTS seçeneği belirtilirse, sütunlar alt öğe olarak döndürülür. Aksi takdirde, XML özniteliklerine eşlenirler. Bu seçenek yalnızca RAW, AUTO ve PATH modlarında desteklenir. Bu yönergeyi kullanırken isteğe bağlı olarak XSINIL veya ABSENT belirtebilirsiniz. XSINIL, NULL sütun değerleri için xsi:nil özniteliği True olarak ayarlanmış bir öğenin oluşturulduğunu belirtir. Varsayılan olarak veya ELEMENTS ile birlikte ABSENT belirtildiğinde, NULL değerler için herhangi bir öğe oluşturulmaz. Çalışan bir örnek için bkz. FOR XML ile RAW Modu kullanma ve FOR XML ile AUTO Modu kullanma.

İKILI TABAN64

BINARY Base64 seçeneği belirtilirse, sorgu tarafından döndürülen tüm ikili veriler base64 ile kodlanmış biçimde temsil edilir. RAW ve EXPLICIT modunu kullanarak ikili verileri almak için bu seçeneğin belirtilmesi gerekir. AUTO modunda, ikili veriler varsayılan olarak başvuru olarak döndürülür. Çalışan bir örnek için bkz. FOR XML ile RAW Modu kullanma.

TYPE

Sorgunun sonuçları xml türü olarak döndürdüğünü belirtir. Daha fazla bilgi için bkz. FOR XML Sorguları'nda TYPE Yönergesi.

ROOT [('RootName')]

Sonuçta elde edilen XML'e tek, en üst düzey bir öğenin eklendiğini belirtir. İsteğe bağlı olarak oluşturulacak kök öğe adını belirtebilirsiniz. Varsayılan değer şudur: <root>.

Açıklamalar

Dokümantasyonda Azure SQL Veritabanı veya SQL Veritabanı için de geçerli olan yan tümceyle ilgili belgeler için bakınız: SELECT... FOR XML.