Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Microsoft Fabric
Det här exemplet illustrerar skillnaden mellan ELEMENT- och XML--direktiv.
ELEMENT--direktivet konverterar data till entiteter, men XML--direktivet gör det inte. Elementet <Summary> tilldelas XML-attributet <Summary>This is summary description</Summary>i frågesatsen.
Tänk på den här frågan:
USE AdventureWorks2022;
GO
SELECT 1 as Tag,
0 as Parent,
ProductModelID as [ProductModel!1!ProdModelID],
Name as [ProductModel!1!Name],
NULL as [Summary!2!SummaryDescription!ELEMENT]
FROM Production.ProductModel
WHERE ProductModelID=19
UNION ALL
SELECT 2 as Tag,
1 as Parent,
ProductModelID,
NULL,
'<Summary>This is summary description</Summary>'
FROM Production.ProductModel
WHERE ProductModelID = 19
FOR XML EXPLICIT;
Det här är resultatet. Sammanfattningsbeskrivningen är angiven i resultatet.
<ProductModel ProdModelID="19" Name="Mountain-100">
<Summary>
<SummaryDescription><Summary>This is summary description</Summary></SummaryDescription>
</Summary>
</ProductModel>
Om du nu anger XML--direktivet i kolumnnamnet, Summary!2!SummaryDescription!XMLi stället för ELEMENT--direktivet, får du sammanfattningsbeskrivningen utan entisering.
<ProductModel ProdModelID="19" Name="Mountain-100">
<Summary>
<SummaryDescription>
<Summary>This is summary description</Summary>
</SummaryDescription>
</Summary>
</ProductModel>
I stället för att tilldela ett statiskt XML-värde använder följande fråga query()-metoden för XML- typ för att hämta sammanfattningsbeskrivningen för produktmodellen från kolumnen CatalogDescription xml typ. Eftersom resultatet är känt för att vara av xml- typ, tillämpas ingen entitisering.
SELECT 1 as Tag,
0 as Parent,
ProductModelID as [ProductModel!1!ProdModelID],
Name as [ProductModel!1!Name],
NULL as [Summary!2!SummaryDescription]
FROM Production.ProductModel
WHERE CatalogDescription is not null
UNION ALL
SELECT 2 as Tag,
1 as Parent,
ProductModelID,
Name,
(SELECT CatalogDescription.query('
declare namespace pd="http://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],Tag
FOR XML EXPLICIT;