Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да вмъкна FOR AUTO XML резултат в таблица?

Тестова таблица и данни

create table tableABC(A int, B bit, C varchar(10))
insert into tableABC values(1, 1, 'Row 1')
insert into tableABC values(2, 0, 'Row 1')

Вземете xml

declare @xml xml
set @xml = (select *
            from tableABC
            for xml auto, elements)

XML данни

<tableABC>
  <A>1</A>
  <B>1</B>
  <C>Row 1</C>
</tableABC>
<tableABC>
  <A>2</A>
  <B>0</B>
  <C>Row 1</C>
</tableABC>

Вмъкване в друга таблицаABC

insert into tableABC(A, B, C)
select 
  r.value('A[1]', 'int'),
  r.value('B[1]', 'bit'),
  r.value('C[1]', 'varchar(10)')
from @xml.nodes('tableABC') t(r)

Редактиране Копирайте целия този израз, за ​​да проверите дали работи

use tempdb
go

create table tableABC(A int, B bit, C varchar(10))

go
insert into tableABC values(1, 1, 'Row 1')
insert into tableABC values(2, 0, 'Row 1')

declare @xml xml
set @xml = (select *
            from tableABC
            for xml auto, elements)

insert into tableABC(A, B, C)
select 
  r.value('A[1]', 'int'),
  r.value('B[1]', 'bit'),
  r.value('C[1]', 'varchar(10)')
from @xml.nodes('tableABC') t(r)

select *
from tableABC

go

drop table tableABC

Резултатът е дублирани редове в таблицаABC

A           B     C
----------- ----- ----------
1           1     Row 1
2           0     Row 1
1           1     Row 1
2           0     Row 1



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Възпроизвеждане на видео файл от sql сървър blob чрез ashx манипулатор с помощта на HTML5 Video Tag

  2. CRUD операции на SQL Server

  3. Еквивалентът на SQL Server на Sleep():Инструкцията WAITFOR

  4. Промяна на таблица и добавяне на УНИКАЛЕН ключ води до грешка

  5. Не може да се отвори потребителска база данни по подразбиране. Неуспешно влизане. след инсталиране на SQL Server Management Studio Express