Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
marvel Member Откуда: Сообщений: 1066 |
Здравствуйте Есть хмл declare @x xml = '<Message > <Order id="123"> <Book Name="SQL" Date="2017-01-25T12:08:04.280"> <Param> <Customer UserFIO="Иванов" Date="2017-02-02T11:52:04"/> <Customer UserFIO="Петров" Date="2017-02-02T11:52:04"/> </Param> </Book> <Book Name="XML" Date="2017-01-25T12:08:04.280"> <Param> <Customer UserFIO="Сидоров" Date="2017-02-02T11:52:04"/> </Param> </Book> </Order> </Message>' не понимаю как с помощью modify сделать хмл такого вида <Message> <Order id="123"> <Book Name="SQL" Date="2017-01-25T12:08:04.280"> <Param> <Customer UserFIO="Иванов" Date="2017-02-02T11:52:04" type="1" /> <Customer UserFIO="Петров" Date="2017-02-02T11:52:04" type="1" /> </Param> </Book> <Book Name="XML" Date="2017-01-25T12:08:04.280"> <Param> <Customer UserFIO="Сидоров" Date="2017-02-02T11:52:04" type="1" /> </Param> </Book> </Order> </Message> тоесть добавить новый атрибут type со значение 1 Спасибо за помощь! |
17 фев 17, 11:49 [20220564] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9646 |
declare @x xml = '<Message > <Order id="123"> <Book Name="SQL" Date="2017-01-25T12:08:04.280"> <Param> <Customer UserFIO="Иванов" Date="2017-02-02T11:52:04"/> <Customer UserFIO="Петров" Date="2017-02-02T11:52:04"/> </Param> </Book> <Book Name="XML" Date="2017-01-25T12:08:04.280"> <Param> <Customer UserFIO="Сидоров" Date="2017-02-02T11:52:04"/> </Param> </Book> </Order> </Message>'; declare @p int = 1, @c int; select @x; select @c = @x.query('count(//Param/Customer)').value('.', 'int'); while @p <= @c begin set @x.modify('insert attribute type {1} as last into (((//Param/Customer)[position() = sql:variable("@p")])[1])'); select @p += 1; end; select @x; |
17 фев 17, 12:30 [20220826] Ответить | Цитировать Сообщить модератору |
marvel Member Откуда: Сообщений: 1066 |
invm, Спасибо! |
17 фев 17, 13:22 [20221051] Ответить | Цитировать Сообщить модератору |
naz74ru Member Откуда: Сообщений: 7 |
Добрый день, подскажите, пож., где посмотреть синтаксис .modify('insert ...)? Только начинаю эту тему, надо выгрузить отчёт в xml Получил xml2 переменную: <СвВыпл НачислСВВс3="25559.8090" ВыплОПСДогВс3="0" ВыплОПСВс3="116180.9500" СумВыплВс3="116180.9500"> <СвВыплМК НачислСВ="7920.4004" ВыплОПСДог="0" ВыплОПС="36001.8200" СумВыпл="36001.8200" КодКатЛиц="НР" Месяц="1" /> <СвВыплМК НачислСВ="8589.1454" ВыплОПСДог="0" ВыплОПС="39041.5700" СумВыпл="39041.5700" КодКатЛиц="НР" Месяц="2" /> <СвВыплМК НачислСВ="9050.2632" ВыплОПСДог="0" ВыплОПС="41137.5600" СумВыпл="41137.5600" КодКатЛиц="НР" Месяц="3" /> </СвВыпл> Впереди много шагов, сначала как добавить элемент «СвВыплСВОПС»? <СвВыплСВОПС> <СвВыпл НачислСВВс3="25559.8090" ВыплОПСДогВс3="0" ВыплОПСВс3="116180.9500" СумВыплВс3="116180.9500"> <СвВыплМК НачислСВ="7920.4004" ВыплОПСДог="0" ВыплОПС="36001.8200" СумВыпл="36001.8200" КодКатЛиц="НР" Месяц="1" /> <СвВыплМК НачислСВ="8589.1454" ВыплОПСДог="0" ВыплОПС="39041.5700" СумВыпл="39041.5700" КодКатЛиц="НР" Месяц="2" /> <СвВыплМК НачислСВ="9050.2632" ВыплОПСДог="0" ВыплОПС="41137.5600" СумВыпл="41137.5600" КодКатЛиц="НР" Месяц="3" /> </СвВыпл> </СвВыплСВОПС> Не получается создать с помощью set @xml2.modify('insert <"СвВыплСВОПС">' '</"СвВыплСВОПС"> as first into (/)[1]'); - пишет неправильный синтаксис.. |
21 апр 17, 07:24 [20420761] Ответить | Цитировать Сообщить модератору |
naz74ru Member Откуда: Сообщений: 7 |
Нашёл документацию http://technet.microsoft.com/ru-ru/library/ms175466(SQL.110).aspx |
21 апр 17, 07:35 [20420775] Ответить | Цитировать Сообщить модератору |
naz74ru Member Откуда: Сообщений: 7 |
Вопрос решён построением исходного запроса select... |
||
21 апр 17, 10:37 [20421305] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |