Other FORXMLAUTO SQL function
1. Usage of FORMATXMLAUTO
SQL Server Query 1
SELECT TOP 10
c.CustomerID AS "@CustomerID", -- Prefixing with '@' makes it an attribute
c.CompanyName AS "@CompanyName",
o.OrderID AS "Order/@OrderID",
o.OrderDate AS "Order/@OrderDate"
FROM
Customers c
LEFT JOIN
Orders o ON c.CustomerID = o.CustomerID
WHERE c.Country = 'USA'
ORDER BY c.CustomerID, o.OrderID
FOR XML AUTO;
Create SQL query with SqlQueryBuilder 1
var (sql1, parameters1) = new SqlQueryBuilder()
.Select().Top(10)
.ColumnXml("c.CustomerID", "@CustomerID")
.ColumnXml("c.CompanyName", "@CompanyName")
.ColumnXml("o.OrderID", "Order/@OrderID")
.ColumnXml("o.OrderDate", "Order/@OrderDate")
.From("Customers", "c")
.Join(new List<IJoin>()
{
new INNERJOIN().TableName(new Table("Orders","o"))
.On(new Column("c.CustomerID").Equale(new Column("o.CustomerID")))
})
.Where(new Where(new Column("c.Country").Equale("USA")))
.OrderBy(new OrderBy().Set(new Column("c.CustomerID"))
.Set(new Column("o.OrderID")))
.ForXml(new FOR_XML_AUTO().ELEMENTS())
.Build();
Query build by SqlQueryBuilder 1
SELECT TOP 10 c.CustomerID AS '@CustomerID',
c.CompanyName AS '@CompanyName',
o.OrderID AS 'Order/@OrderID',
o.OrderDate AS 'Order/@OrderDate'
FROM Customers AS c
INNER JOIN
Orders AS o
ON c.CustomerID = o.CustomerID
WHERE c.Country = @pMAIN_2507200132162477400
ORDER BY c.CustomerID ASC, o.OrderID ASC
FOR XML AUTO, ELEMENTS;
Parameters (If used)
Name |
Value |
@pMAIN_2507200132162477400 |
USA |
Query Results 1:
|
Col1 |
1 |
<c><_x0040_CustomerID>GREAL</_x0040_CustomerID><_x0040_CompanyName>Great Lakes Food Market</_x0040_CompanyName><o><Order_x002F__x0040_OrderID>10528</Order_x002F__x0040_OrderID><Order_x002F__x0040_OrderDate>1997-05-06T00:00:00</Order_x002F__x0040_OrderDate></o><o><Order_x002F__x0040_OrderID>10589</Order_x002F__x0040_OrderID><Order_x002F__x0040_OrderDate>1997-07-04T00:00:00</Order_x002F__x0040_OrderDate></o><o><Order_x002F__x0040_OrderID>10616</Order_x002F__x0040_OrderID><Order_x002F__x0040_OrderDate>1997-07-31T00:00:00</Order_x002F__x0040_OrderDate></o><o><Order_x002F__x0040_OrderID>10617</Order_x002F__x0040_OrderID><Order_x002F__x0040_OrderDate>1997-07-31T00:00:00</Order_x002F__x0040_OrderDate></o><o><Order_x002F__x0040_OrderID>10656</Order_x002F__x0040_OrderID><Order_x002F__x0040_OrderDate>1997-09-04T00:00:00</Order_x002F__x0040_OrderDate></o><o><Order_x002F__x0040_OrderID>10681</Order_x002F__x0040_OrderID><Order_x002F__x0040_OrderDate>1997-09-25T00:00:00</Order_x002F__x0040_OrderDate></o><o><Order_x002F__x0040_OrderID>10816</Order_x002F__x0040_OrderID><Order_x002F__x0040_OrderDate>1998-01-06T00:00:00</Order_x002F__x0040_OrderDate></o><o><Order_x002F__x0040_OrderID>10936</Order_x002F__x0040_OrderID><Order_x002F__x0040_OrderDate>1998-03-09T00:00:00</Order_x002F__x0040_OrderDate></o><o><Order_x002F__x0040_OrderID>11006</Order_x002F__x0040_OrderID><Order_x002F__x0040_OrderDate>1998-04-07T00:00:00</Order_x002F__x0040_OrderDate></o><o><Order_x002F__x0040_OrderID>11040</Order_x002F__x0040_OrderID><Order_x002F__x0040_OrderDate>1998-04-22T00:00:00</Order_x002F__x0040_OrderDate></o></c>
|
2. Usage of FORXMLAUTO
SQL Server Query 2
SELECT TOP 10
c.CustomerID AS "@CustomerID", -- Prefixing with '@' makes it an attribute
c.CompanyName AS "@CompanyName",
o.OrderID AS "Order/@OrderID",
o.OrderDate AS "Order/@OrderDate"
FROM
Customers c
LEFT JOIN
Orders o ON c.CustomerID = o.CustomerID
WHERE c.Country = 'USA'
ORDER BY c.CustomerID, o.OrderID
FOR XML AUTO, ELEMENTS;
Create SQL query with SqlQueryBuilder 2
var (sql2, parameters2) = new SqlQueryBuilder()
.Select().Top(10)
.ColumnXml("c.CustomerID", "@CustomerID")
.ColumnXml("c.CompanyName", "@CompanyName")
.ColumnXml("o.OrderID", "Order/@OrderID")
.ColumnXml("o.OrderDate", "Order/@OrderDate")
.From("Customers", "c")
.Join(new List<IJoin>()
{
new LEFTJOIN().TableName(new Table("Orders","o"))
.On(new Column("c.CustomerID").Equale(new Column("o.CustomerID")))
})
.Where(new Where(new Column("c.Country").Equale("USA")))
.OrderBy(new OrderBy().Set(new Column("c.CustomerID"))
.Set(new Column("o.OrderID")))
.ForXml(new FOR_XML_AUTO())
.Build();
Query build by SqlQueryBuilder 2
SELECT TOP 10 c.CustomerID AS '@CustomerID',
c.CompanyName AS '@CompanyName',
o.OrderID AS 'Order/@OrderID',
o.OrderDate AS 'Order/@OrderDate'
FROM Customers AS c
LEFT OUTER JOIN
Orders AS o
ON c.CustomerID = o.CustomerID
WHERE c.Country = @pMAIN_2507200132162589510
ORDER BY c.CustomerID ASC, o.OrderID ASC
FOR XML AUTO;
Parameters (If used)
Name |
Value |
@pMAIN_2507200132162589510 |
USA |
Query Results 2:
|
Col1 |
1 |
<c><_x0040_CustomerID>GREAL</_x0040_CustomerID><_x0040_CompanyName>Great Lakes Food Market</_x0040_CompanyName><o><Order_x002F__x0040_OrderID>10528</Order_x002F__x0040_OrderID><Order_x002F__x0040_OrderDate>1997-05-06T00:00:00</Order_x002F__x0040_OrderDate></o><o><Order_x002F__x0040_OrderID>10589</Order_x002F__x0040_OrderID><Order_x002F__x0040_OrderDate>1997-07-04T00:00:00</Order_x002F__x0040_OrderDate></o><o><Order_x002F__x0040_OrderID>10616</Order_x002F__x0040_OrderID><Order_x002F__x0040_OrderDate>1997-07-31T00:00:00</Order_x002F__x0040_OrderDate></o><o><Order_x002F__x0040_OrderID>10617</Order_x002F__x0040_OrderID><Order_x002F__x0040_OrderDate>1997-07-31T00:00:00</Order_x002F__x0040_OrderDate></o><o><Order_x002F__x0040_OrderID>10656</Order_x002F__x0040_OrderID><Order_x002F__x0040_OrderDate>1997-09-04T00:00:00</Order_x002F__x0040_OrderDate></o><o><Order_x002F__x0040_OrderID>10681</Order_x002F__x0040_OrderID><Order_x002F__x0040_OrderDate>1997-09-25T00:00:00</Order_x002F__x0040_OrderDate></o><o><Order_x002F__x0040_OrderID>10816</Order_x002F__x0040_OrderID><Order_x002F__x0040_OrderDate>1998-01-06T00:00:00</Order_x002F__x0040_OrderDate></o><o><Order_x002F__x0040_OrderID>10936</Order_x002F__x0040_OrderID><Order_x002F__x0040_OrderDate>1998-03-09T00:00:00</Order_x002F__x0040_OrderDate></o><o><Order_x002F__x0040_OrderID>11006</Order_x002F__x0040_OrderID><Order_x002F__x0040_OrderDate>1998-04-07T00:00:00</Order_x002F__x0040_OrderDate></o><o><Order_x002F__x0040_OrderID>11040</Order_x002F__x0040_OrderID><Order_x002F__x0040_OrderDate>1998-04-22T00:00:00</Order_x002F__x0040_OrderDate></o></c>
|