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

Bagaimana cara membandingkan data antara dua tabel di database yang berbeda menggunakan Sql Server 2008?

select * 
from (
      select 'T1' T, *
      from DB1.dbo.Table
      except
      select 'T2' T, *
      from DB2.dbo.Table
     ) as T
union all
select * 
from (
      select 'T2' T, *
      from DB2.dbo.Table
      except
      select 'T1' T, *
      from DB1.dbo.Table
     ) as T
ORDER BY 2,3,4, ..., 1  -- make T1 and T2 to be close in output 2,3,4 are UNIQUE KEY SEGMENTS

Kode tes:

declare @T1 table (ID int)
declare @T2 table (ID int)

insert into @T1 values(1),(2)
insert into @T2 values(2),(3)

select * 
from (
      select *
      from @T1
      except
      select *
      from @T2
     ) as T
union all
select * 
from (
      select *
      from @T2
      except
      select *
      from @T1
     ) as T

Hasil:

ID
-----------
1
3

Catatan:Memerlukan waktu lama untuk membandingkan tabel besar, ketika mengembangkan solusi "tuned" atau refactorig, yang akan memberikan hasil yang sama seperti REFERERCE - mungkin bijaksana untuk memeriksa parameter sederhana terlebih dahulu:seperti

select count(t.*) from (
   select count(*) c0, SUM(BINARY_CHECKSUM(*)%1000000) c1 FROM T_REF_TABLE 
   -- select 12345 c0, -214365454 c1 -- constant values FROM T_REF_TABLE 
   except 
   select count(*) , SUM(BINARY_CHECKSUM(*)%1000000) FROM T_WORK_COPY 
) t

Ketika ini kosong, Anda mungkin memiliki hal-hal di bawah kendali, dan mungkin Anda dapat memodifikasi ketika Anda gagal Anda akan melihat "nilai konstan FROM T_REF" untuk isert untuk menghemat lebih banyak waktu untuk pemeriksaan berikutnya!!!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dapatkan Nilai Pengembalian dari prosedur Tersimpan di asp.net

  2. Bagaimana cara saya membuat serial grafik besar objek .NET menjadi SQL Server BLOB tanpa membuat buffer besar?

  3. 2 Cara Mengembalikan Daftar Pemicu di Database SQL Server menggunakan T-SQL

  4. Ekspor Data SQL Server ke file CSV

  5. Python memanggil prosedur tersimpan sql-server dengan parameter bernilai tabel