T-SQL Tutorial

SQL Server XML modify()


The SQL Server XML modify() method is a powerful feature that allows you to modify XML data stored in a SQL Server database. With this method, you can perform a variety of operations on XML data, such as inserting, updating, and deleting nodes.

The modify() method works by using the XQuery language to navigate and manipulate XML data. XQuery is a query language designed specifically for XML data, and it provides a rich set of functions and operators for working with XML.

The modify() method takes an XQuery expression as its argument, which specifies the modification operation to be performed. The XQuery expression can include a variety of functions and operators, such as insert, replace, and delete, as well as more advanced operations like merging and sorting.


Example

For example, suppose you have an XML document stored in a SQL Server database that represents a list of books. Each book is represented by a <book> element, which has child elements for the title, author, and publication date:

<books>
<book>
<title>SQL Server Query</title>
<author>tsql.info</author>
<pubdate>2022-08-21</pubdate>
</book>
<book>
<title>SQL Server Statements</title>
<author>tsql.info</author>
<pubdate>2023-02-01</pubdate>
</book>
</books>

To update the publication date of the second book in the list, you could use the following modify() method:

UPDATE Books
SET Data.modify('
replace value of (/books/book[2]/pubdate/text())[1]
with "2023-03-10"');

This expression uses the replace value of function to replace the text value of the <pubdate> element for the second book with a new value of "2023-03-10".

The modify() method is a powerful tool for working with XML data in SQL Server, and it can be used in a variety of scenarios, from simple updates to complex data transformations. With its support for XQuery, you can take advantage of a rich set of functions and operators to create powerful and flexible XML data modifications.