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

Menggunakan CHANGETABLE() di semua tabel

Saya tidak terbiasa dengan fitur ini, tetapi jika masalah Anda adalah cara membuat kueri beberapa tabel menggunakan CHANGETABLE() maka saya berasumsi Anda bisa menggunakan prosedur tersimpan untuk mengulang semua nama tabel dan menjalankan kueri menggunakan SQL dinamis:

declare 
    @sql nvarchar(max), 
    @parameters nvarchar(max), 
    @TableName nvarchar(128), 
    @Version bigint

set @Version = CHANGE_TRACKING_CURRENT_VERSION()

declare Tables cursor local fast_forward
for 
select name from sys.tables where... -- add conditions here if necessary

open Tables
fetch next from Tables into @TableName
while @@fetch_status = 0
begin
    set @sql = N'select * from CHANGETABLE(CHANGES ' + quotename(@TableName) + ', @LastVersion)ct order by sys_change_version desc'
    set @parameters = N'@LastVersion bigint'
    exec sp_executesql @sql, @parameters, @LastVersion = @Version
    fetch next from Tables into @TableName
end

close Tables
deallocate Tables

Anda dapat menggabungkan ini dengan INSERT dalam SQL dinamis untuk menulis hasilnya ke dalam tabel yang kemudian Anda kueri untuk pelaporan dan analisis.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara tercepat untuk mengidentifikasi variasi Prosedur Tersimpan yang paling sering digunakan di SQL Server 2005

  2. Cara Menemukan Tabel yang Mengandung Kolom Tertentu di SQL Server

  3. SQL Server - Putar nilai TIME ke menit berikutnya

  4. Kembalikan ID pada INSERT?

  5. Format waktu sebagai Waktu Militer 24 jam?