вставить элемент в n-й элемент в xml на сервере Sql

рассмотрите этот XML:

<Employees> <Person> <ID>1000</ID> <Name>Nima</Name> <LName>Agha</LName> </Person> <Person> <ID>1001</ID> <Name>Ligha</Name> <LName>Ligha</LName> </Person> <Person> <ID>1002</ID> <Name>Jigha</Name> <LName>Jigha</LName> </Person> <Person> <ID>1003</ID> <Name>Aba</Name> <LName>Aba</LName> </Person> </Employees> 

Я хочу написать процедуру, которая получает число, а затем я вставляю элемент в элемент nth Person. например, если 1 перейти к моей процедуре, я вставляю элемент в элемент первого лица.

 DECLARE @data XML = ' <Employees> <Person> <ID>1000</ID> <Name>Nima</Name> <LName>Agha</LName> </Person> <Person> <ID>1001</ID> <Name>Ligha</Name> <LName>Ligha</LName> </Person> <Person> <ID>1002</ID> <Name>Jigha</Name> <LName>Jigha</LName> </Person> <Person> <ID>1003</ID> <Name>Aba</Name> <LName>Aba</LName> </Person> </Employees> ' DECLARE @offset INT = 2 DECLARE @value VARCHAR(100) = 'newvalue' SET @data.modify('insert <NewAttribute>{sql:variable("@value")}</NewAttribute> as last into (/Employees/Person)[sql:variable("@offset")][1]') SELECT @data 
 DECLARE @AttributeValue NVARCHAr(100) = 'TestValue'; DECLARE @NodeNR INT = 3 DECLARE @XML XML = '<Employees> <Person> <ID>1000</ID> <Name>Nima</Name> <LName>Agha</LName> </Person> <Person> <ID>1001</ID> <Name>Ligha</Name> <LName>Ligha</LName> </Person> <Person> <ID>1002</ID> <Name>Jigha</Name> <LName>Jigha</LName> </Person> <Person> <ID>1003</ID> <Name>Aba</Name> <LName>Aba</LName> </Person> </Employees>'; SET @XML.modify('insert attribute Attribute {sql:variable("@AttributeValue")} into (/Employees/Person[position()=sql:variable("@NodeNr")])[1]') 

Попробуй это –

 DECLARE @Param INT = 1000 DECLARE @NodeID INT = 2 DECLARE @XML XML = ' <Employees> <Person> <ID>1000</ID> <Name>Nima</Name> <LName>Agha</LName> </Person> <Person> <ID>1001</ID> <Name>Ligha</Name> <LName>Ligha</LName> </Person> <Person> <ID>1002</ID> <Name>Jigha</Name> <LName>Jigha</LName> </Person> <Person> <ID>1003</ID> <Name>Aba</Name> <LName>Aba</LName> </Person> </Employees>' DECLARE @SQL NVARCHAR(MAX) = ' DECLARE @XML XML = @XML_Param DECLARE @Id INT = @Value_Param SET @XML.modify(''insert attribute Id {sql:variable("@Id")} into (/Employees/Person)[' + CAST(@NodeID AS VARCHAR) + ']'') SELECT @XML_Output = @XML' DECLARE @Definition NVARCHAR(500) = N'@XML_Param XML, @Value_Param INT, @Node_Param INT, @XML_Output XML OUTPUT' DECLARE @XMLResult XML EXEC sys.sp_executesql @SQL , @Definition , @XML_Param = @XML , @Value_Param = @Param , @Node_Param = 1 , @XML_Output = @XMLResult OUTPUT SELECT @XMLResult 
  • выбрать частоту элемента над столбцом xml
  • Вставка узлов XML в таблицу в SQL Server
  • Преобразование всех дочерних тегов в одну колонку с несколькими разделителями -SQL Server (3)
  • Как настроить атрибуты столбца XML в T-SQL
  • Получить элемент без подэлементов в SQL Server
  • как удалить дублирующее поле в xml
  • T-SQL Xquery Exist Method не возвращает ничего
  • операция изменения в столбце XML занимает слишком много времени
  • Найти и заменить только часть значения xml с помощью XQuery?
  • Как запросить столбец XML в TSQL (сообщение Hl7)
  • Значение атрибута SQL XML
  • Interesting Posts

    Ошибка установки SQL Server в Visual Studio 2010

    Является ли SELECT TOP всегда самым быстрым способом получить предварительный запрос запроса, который вы хотите на SQL?

    Может ли добавление базового нового индекса SQL Server создавать больше проблем?

    Как проверить, содержат ли две базы данных SQL Server одинаковые данные?

    Хранение данных в appconfig из текстового поля

    Какой тип данных можно использовать для хранения HTML-файлов в базе данных?

    Выбор транспорта для интеграции (Oracle + SQL Server)

    Как сделать LIKE '% Search% быстрее в SQL Server

    Чтобы выбрать верхние 2 значения для каждого уникального значения в двух столбцах

    Есть ли дополнения или расширения, которые позволят мне хранить хранимые процедуры F12 в Visual Studio?

    Копирование данных из datatable в SQL Server

    Ограничения nvarchar до 8000 символов в хранимой процедуре

    Где предложение сгруппированных идентификаторов

    Ограничения памяти для стандартных и аналитических служб SQL Server 2008 R2

    Ошибка HTTP-сообщений HTTP-служб отчетов

    Давайте будем гением компьютера.