گرفتن خروجی XML از جداول در SQL Server 2012
نویسنده: مجتبی کاویانی
تاریخ: ۱۳۹۱/۰۹/۱۹ ۰:۰
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
SELECT BusinessEntityID, PersonType, Title, FirstName, MiddleName, LastName FROM Person WHERE BusinessEntityID = 10001 FOR XML AUTO
اما اگر بخواهیم خروجی به صورت node Elements باشد کافیست از پارامتر Elements استفاده نمایید
SELECT BusinessEntityID, PersonType, Title, FirstName, MiddleName, LastName FROM Person WHERE BusinessEntityID = 10001 FOR XML AUTO, ELEMENTS
خروجی بصورت زیر میباشد:
اگر بخواهیم node attributes و node elements با هم ترکیب کنیم بصورت زیر عمل میکنیم:
SELECT BusinessEntityID AS '@ID', PersonType, Title, FirstName, MiddleName, LastName FROM Person WHERE BusinessEntityID = 10001 FOR XML ELEMENTS
خروجی بصورت زیر است:
حال میخواهیم همه nodeها را یک node ریشه قرار دهیم برای این کار از پارامتر ROOT در کنار AUTO به صورت زیر استفاده نمایید:
SELECT *
FROM Person
WHERE BusinessEntityID = 15291
FOR XML AUTO , ROOT('Persons')
اما اگر بخواهیم نام جدول را با نام دلخواه خود تغییر دهیم از پارامتر PATH به جای AUTO به صورت زیر استفاده نمایید:
SELECT *
FROM Person
WHERE BusinessEntityID = 15291
FOR XML PATH('P') , ROOT('Persons')
- میتونی با کدنویسی اینکار رو انجام بدی:
var reportData = new DataSet();
reportData.ReadXml("yourfile.xml");
var connection = new SqlConnection("DB ConnectionSTring");
var sbc = new SqlBulkCopy(connection);
sbc.DestinationTableName = "yourXMLTable"; INSERT Customers SELECT * FROM OPENXML ...
FOR XML ELEMENTS
for xml auto, ELEMENTS