Aracılığıyla paylaş


Örnek: Gizle yönergeyi belirtme

Bu örnek, kullanılışını GİZLEME yönergesi.Bir öznitelik için Evrensel satırları sıralama dönmek için sorgu istediğinizde bu yönerge yararlıdır tablo sorgu tarafından döndürülen, ancak son sonuç XML belgesindeki bu özniteliği istiyorsunuz.

Bu sorgu, bu XML oluşturur:

<ProductModel ProdModelID="19" Name="Mountain-100">
  <Summary>
    <SummaryDescription>
           <Summary> element from XML stored in CatalogDescription column
    </SummaryDescription>
  </Summary>
</ProductModel>

Bu sorgu, istediğiniz XML oluşturur.Sorguya sütun adlarının Tag değer olarak 1 ve 2 sahip iki sütun grubu tanımlar.

Bu sorguyu kullanan Query() Yöntem (xml veri türü) of the XML the CatalogDescription sorgu için veri türü sütun XML türü Özet açıklama almak için.Ayrıca, sorgunun kullandığı Value() Yöntem (xml veri türü) of the XML veri türü CatalogDescription sütundan Productmodelıd değer alınamıyor.Bu değer, sonuç XML içinde gerekiyor, ancak sonuç kümesi sıralamak için gereklidir.Bu nedenle, sütun adı [Summary!2!ProductModelID!HIDE], içeren GİZLEME yönergesi.Bu sütun SELECT deyiminde dahil edilmemesi durumunda satır kümesi tarafından sıralamak gerekir [ProductModel!1!ProdModelID] ve [Summary!2!SummaryDescription] yani XML türünü ve kullanmakXML Türü sütununda ORDER BY.Bu nedenle, ek [Summary!2!ProductModelID!HIDE] sütun eklenir ve sonra ORDER BY yan tümcesinde belirtilir.

SELECT  1 as Tag,
        0 as Parent,
        ProductModelID     as [ProductModel!1!ProdModelID],
        Name               as [ProductModel!1!Name],
        NULL               as [Summary!2!ProductModelID!hide],
        NULL               as [Summary!2!SummaryDescription]
FROM    Production.ProductModel
WHERE   CatalogDescription is not null
UNION ALL
SELECT  2 as Tag,
        1 as Parent,
        ProductModelID,
        Name,
        CatalogDescription.value('
         declare namespace PD="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription";
       (/PD:ProductDescription/@ProductModelID)[1]', 'int'),
        CatalogDescription.query('
         declare namespace pd="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription";
         /pd:ProductDescription/pd:Summary')
FROM    Production.ProductModel
WHERE   CatalogDescription is not null
ORDER BY [ProductModel!1!ProdModelID],[Summary!2!ProductModelID!hide]
FOR XML EXPLICIT
go

Bu sonucu oluşur:

<ProductModel ProdModelID="19" Name="Mountain-100">
  <Summary>
    <SummaryDescription>
      <pd:Summary xmlns:pd="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription" >
        <p1:p xmlns:p1="http://www.w3.org/1999/xhtml">Our top-of-the-line competition mountain bike. Performance-enhancing options include the innovative HL Frame, super-smooth front suspension, and traction for all terrain. </p1:p>
      </pd:Summary>
    </SummaryDescription>
  </Summary>
</ProductModel>

See Also

Reference