FOR XML 安全性考慮 (SQLXML 4.0)
FOR XML AUTO 模式會產生 XML 階層,其中專案名稱對應至數據表名稱和屬性名稱對應至數據行名稱。 這會公開資料庫數據表和數據行資訊。 您可以在查詢中指定資料表和資料行別名,以在使用 AUTO 模式(伺服器端格式設定)時隱藏資料庫資訊。 這些別名會在產生的 XML 檔中以元素和屬性名稱的形式傳回。
例如,下列查詢會指定 AUTO 模式;因此,XML 格式會在伺服器上完成:
SELECT C.FirstName as F,C.LastName as L
FROM Person.Contact C
FOR XML AUTO
在產生的 XML 檔中,別名會用於元素和屬性名稱:
<?xml version="1.0" encoding="utf-8" ?>
<root>
<C F="Nancy" L="Fuller" />
<CE F="Andrew" L="Peacock" />
<C F="Janet" L="Leverling" />
...
</root>
當您使用 NESTED 模式(用戶端格式設定)時,別名只會針對產生的 XML 檔中的屬性傳回。 基表的名稱一律會以專案名稱傳回。 例如,下列查詢會指定 NESTED 模式。
SELECT C.FirstName as F,C.LastName as L
FROM Person.Contact C
FOR XML AUTO
在產生的 XML 檔中,基表的名稱會以專案名稱和資料表別名的形式傳回:
<?xml version="1.0" encoding="utf-8" ?>
<root>
<Person.Contact F="Nancy" L="Fuller" />
<Person.Contact F="Andrew" L="Peacock" />
<Person.Contact F="Janet" L="Leverling" />
...
</root>