Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana cara memasukkan hasil FOR AUTO XML ke dalam tabel?

Tabel dan data uji

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')

Dapatkan xml

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

Data 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>

Masukkan ke tabel lainABC

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)

Sunting Salin seluruh pernyataan ini untuk menguji apakah berhasil

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

Hasilnya adalah baris duplikat di tableABC

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. 3 Cara Mengonversi HEX ke INT di SQL Server (T-SQL)

  2. Transaksi basis data terdistribusi vs transaksi lintas basis data

  3. Cara membuat RAND() Deterministik di SQL Server

  4. Bagaimana saya bisa menggunakan Date Datatype di sql server?

  5. Pemicu pembaruan SQL hanya ketika kolom diubah