Yan (Transact-sql)

Gözat veya xml seçenekleri belirtmek için yan tümcesi için kullanılır. Gözat ve xml ilgisiz seçeneklerdir.

Önemli notÖnemli

xmldata Direktif for xml seçeneği kullanımı önerilmemektedir. xsd üretimi, raw ve auto modu kullanın. Açık modda xmldata yönergesi hiçbir değişiklik yoktur. Bu özellik Microsoft SQL Server'ın ilerideki bir sürümünde kaldırılacaktır. Yeni geliştirme işlerinde bu özelliği kullanmaktan kaçının ve bu özelliği kullanmakta olan uygulamalarda değişiklik yapmayı planlayın.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

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

Bağımsız değişkenler

  • GÖZAT
    db Kitaplığı veri Gözat modunda imleci güncelleştirmelerini görüntüleme sırasında izin belirtir. Tablo içeriyorsa, bir tablo bir uygulamada taranabilir bir timestampsütun, tablo benzersiz bir dizin ve göz seçeneği örneğine gönderilen select deyimleri sonunda SQL Server.

    [!NOT]

    Sen cant'kullanma <lock_hint> için Gözat seçeneğini içeren bir select deyiminde holdlock.

    İÇİN browse select deyimleri UNION işleci ile birleştirilmiş bulunamaz.

    [!NOT]

    Bir tablo benzersiz bir dizin anahtar sütunları NULL olabilecek ve tablo bir dış birleşim iç tarafında bulunan dizin gözatma modu tarafından desteklenmiyor.

    Satırları taramak için gözatma modu sağlar, SQL Servertablo ve bir anda, tabloda bir satır verileri güncelleştirmek. Access bir SQL Servertablo uygulamanızda Gözat modunda, aşağıdaki iki seçenekten birini kullanmanız gerekir:

    • Veri erişimi için kullanılan select deyimi, SQL Servertablo anahtar kelimeler ile bitmelidir FOR BROWSE. Açtığınızda FOR BROWSEgözatma modu kullanmak için seçenek, geçici tablolar oluşturulur.

    • Aşağıdaki çalıştırmanız Transact-SQLdeyimini kullanarak gözatma modunu açmak için NO_BROWSETABLEseçeneği:

      SET NO_BROWSETABLE ON
      
      SET NO_BROWSETABLE ON
      

      Açtığınızda NO_BROWSETABLEseçeneği, tüm select deyimlerine davranması sanki FOR BROWSEseçenek deyimleri eklenir. Ancak, NO_BROWSETABLEdeğil Oluştur seçeneği geçici tablolar, FOR BROWSEseçenek genellikle sonuçları başvurunuzu göndermek için kullanır.

    Verileri erişmeye çalıştığınızda SQL Servertablolarında Gözat modunda bir dış birleşim deyimi içeren bir select sorgusu kullanarak ve bir dış birleşim deyimi iç tarafında bugünkü tablo benzersiz bir dizin tanımlı zaman, benzersiz dizin gözatma modu desteklemiyor. Yalnızca tüm benzersiz dizin anahtar sütunları null değerleri kabul edebilir benzersiz dizin gözatma modu destekler. Aşağıdaki koşullar doğruysa, benzersiz dizin gözatma modu desteklemez:

    • Veri erişim çalışın SQL Servertablolarında Gözat modunda bir dış birleşim deyimi içeren bir select sorgusu kullanarak.

    • Bir dış birleşim deyimi iç tarafında bugünkü tablo benzersiz bir dizin tanımlı.

    Gözatma modunda bu davranışı yeniden oluşturmak için şu adımları izleyin:

    1. De SQL Server Management Studio, adlı bir veritabanı SampleDB.

    2. De SampleDBveritabanı, tleft tablo oluşturup hem c1 adlı tek bir sütun içeren bir tright tablosu. C1 sütun tleft tablo üzerinde benzersiz bir dizin tanımla ve sütun null değerleri kabul etmek için ayarlayın. Bunu yapmak için aşağıdaki komutu çalıştırın Transact-SQLbir uygun sorgu penceresindeki ifadeleri:

      CREATE TABLE tleft(c1 INT NULL UNIQUE) ;
      GO 
      CREATE TABLE tright(c1 INT NULL) ;
      GO
      
      CREATE TABLE tleft(c1 INT NULL UNIQUE) ;
      GO 
      CREATE TABLE tright(c1 INT NULL) ;
      GO
      
    3. Değerlerden tleft tablo ve tright tablo ekleme. Boş değer tleft tablosuna eklemek emin olun. Bunu yapmak için aşağıdaki komutu çalıştırın Transact-SQLSorgu penceresinde tablolar:

      INSERT INTO tleft VALUES(2) ;
      INSERT INTO tleft VALUES(NULL) ;
      INSERT INTO tright VALUES(1) ;
      INSERT INTO tright VALUES(3) ;
      INSERT INTO tright VALUES(NULL) ;
      GO
      
      INSERT INTO tleft VALUES(2) ;
      INSERT INTO tleft VALUES(NULL) ;
      INSERT INTO tright VALUES(1) ;
      INSERT INTO tright VALUES(3) ;
      INSERT INTO tright VALUES(NULL) ;
      GO
      
    4. Açın NO_BROWSETABLEseçeneği. Bunu yapmak için aşağıdaki komutu çalıştırın Transact-SQLSorgu penceresinde tablolar:

      SET NO_BROWSETABLE ON ;
      GO
      
      SET NO_BROWSETABLE ON ;
      GO
      
    5. Bir dış birleşim deyimi içinde seçme sorgusunu kullanarak verilere tleft tablo ve tright tablo. Tleft tablonun dış birleşim deyimi iç tarafında olduğundan emin olun. Bunu yapmak için aşağıdaki komutu çalıştırın Transact-SQLSorgu penceresinde tablolar:

      SELECT tleft.c1 
      FROM tleft 
      RIGHT JOIN tright 
      ON tleft.c1 = tright.c1 
      WHERE tright.c1 <> 2 ;
      
      SELECT tleft.c1 
      FROM tleft 
      RIGHT JOIN tright 
      ON tleft.c1 = tright.c1 
      WHERE tright.c1 <> 2 ;
      

      Sonuçlar bölmesinde şu çıktıyı görürsünüz:

      C1

      ----

      NULL

      NULL

    Gözat modunda tablolara erimek için seçme sorgusunu çalıştırdıktan sonra sonuç kümesi seçme sorgusunu sağ dış birleşim deyimi tanımı nedeniyle iki null değerleri tleft tablosunda c1 sütun içerir. Bu nedenle, sonuç kümesinde tablodan gelen null değerler ve sağ dış birleşim deyimi kullanılmaya boş değerler arasında ayırt edemez. Sonuç kümesi boş değerleri görmezden gerekir yanlış sonuçlar alabilirsiniz.

    [!NOT]

    Benzersiz bir dizin içinde bulunan sütunlar null değerleri kabul etmiyorsanız, sonuç kümesindeki tüm boş değerleri sağ dış birleşim deyimi tarafından tanıtıldı.

  • XML
    Bir sorgunun sonuçlarını xml belgesi olarak döndürülmesini belirtir. Aşağıdaki xml modlarından biri belirtilmelidir: raw, auto, açık. xml verileri hakkında daha fazla bilgi ve SQL Server, bakın xml (SQL Server).

  • RAW ('ElementName')
    Sonuç kümesindeki her satır bir xml öğesi genel tanımlayıcısı dönüştürür ve sorgu sonuç alır <satır /> olarak eleman başlangıç etiketi oluşturur. İsteğe bağlı olarak, satır öğesi için bir ad belirtebilirsiniz. Sonuç xml çıkış kullandığı belirtilen ElementName üretilen her satır için satır öğesi olarak. Daha fazla bilgi için for xml ile ham modunu kullanınve for xml ile ham modunu kullanın.

  • AUTO
    Basit, iç içe xml ağacını döndürür sorgu sonuçlarında. Her tablo için en az bir sütunu select yan tümcesinde listelenen from yan tümcesinde bir xml öğesi olarak gösterilir. select yan tümcesinde listelenen sütunlar uygun öğe öznitelikleri eşleştirilir. Daha fazla bilgi için, bkz. for xml ile ham modunu kullanın.

  • AÇIK
    Sonuç xml ağacını şeklini açıkça tanımlandığını belirtir. Böylece istenilen yerleştirme hakkında ek bilgiler açıkça belirtilen bu modu kullanarak, sorguları belirli bir şekilde yazılmalıdır. Daha fazla bilgi için, bkz. Kullanımı ile for xml Açık modu.

  • XMLDATA
    Satır içi xdr şeması verir, ancak kök öğe sonucu eklemez. xmldata belirtilirse, xdr şeması belgeye eklenir.

  • xmlschema ('TargetNameSpaceURI')
    Döner satır içi xsd şeması. Şemada belirtilen ad döndüren bu yönerge belirttiğinizde, isteğe bağlı olarak bir hedef ad alanı URI belirtebilirsiniz. Daha fazla bilgi için, bkz. Satır içi xsd şeması oluştur.

  • ÖĞELERİ
    Sütunların alt öğeleri döndürülür belirtir. Aksi durumda, xml öznitelikleri için eşleştirilir. Bu seçenek yalnızca raw, auto ve yol modları desteklenir. Daha fazla bilgi için, bkz. for xml ile ham modunu kullanın.

  • XSINIL
    Belirleyen bir öğeyle xsi: Nil özniteliğini ayarlamak gerçek boş sütun değerleri için oluşturulabilir. Bu seçenek yalnızca ÖĞELERI yönergesi ile belirtilebilir. Daha fazla bilgi için, bkz. null değerleri XSINIL parametresi için öğeleri oluşturmak.

  • DEVAMSIZLIK
    Boş sütun değerleri için karşılık gelen xml öğeleri xml sonuç eklenmez olduğunu gösterir. Bu seçenek yalnızca öğeleri ile belirtin.

  • YOL ('ElementName')
    Oluşturduğu bir <satır> öğesi sarıcı sonuç kümesindeki her satır için. Bir öğe adı için belirttiğiniz isteğe bağlı olarak <satır> öğesi wrapper. Boş bir dize for xml path gibi sağlanır, eğer (")), bir wrapper eleman değil oluşturulur. YOLU kullanarak açık yönergesi kullanılarak yazılan sorguları daha kolay bir alternatif sağlar. Daha fazla bilgi için, bkz. for xml ile ham modunu kullanın.

  • BINARY BASE64
    Sorgu ikili base64 ile kodlanmış biçimde ikili veri döndüren belirtir. raw ve Açık modu kullanarak ikili veri aldığınızda, bu seçenek belirtilmelidir. auto modunda varsayılan budur.

  • TÜRÜ
    Sorgu sonuçları verir belirtir xml türü. Daha fazla bilgi için, bkz. TÜR Direktif for xml sorguları.

  • KÖK ('RootName')
    Tek bir üst düzey öğeye sonuç xml ekleneceğini belirtir. İsteğe bağlı olarak üretmek için kök öğe adı belirtebilirsiniz. İsteğe bağlı kök adı belirtilmezse, varsayılan <kök> öğesi eklenir.

Örnekler

Aşağıdaki örnek FOR XML AUTOile TYPEve XMLSCHEMAseçenekleri. Çünkü TYPEseçeneği, sonuç kümesi olarak istemciye döndürülen bir xml türü. XMLSCHEMASeçeneği, satır içi xsd şeması döndürülen, xml verileri dahil olduğunu belirtir ve ELEMENTSseçeneği belirtir xml öğesi merkezli sonucudur ki.

USE AdventureWorks2012;
GO
SELECT p.BusinessEntityID, FirstName, LastName, PhoneNumber AS Phone
FROM Person.Person AS p
Join Person.PersonPhone AS pph ON p.BusinessEntityID  = pph.BusinessEntityID
WHERE LastName LIKE 'G%'
ORDER BY LastName, FirstName 
FOR XML AUTO, TYPE, XMLSCHEMA, ELEMENTS XSINIL;

Ayrıca bkz.

Başvuru

select (Transact-sql)

xml (SQL Server)