[英]Merge multiple SQL Server tables into one
我在數據庫中有許多 SQL Server 表,這些表包含有關相同域(相同列)的信息,並且它們的名稱相同加上日期后綴( yyyyMMdd
):
如果它們都在同一個表中,這似乎更有意義。 有沒有辦法,使用查詢/SSIS 或類似的東西,將這些表合並為一個(TABLE_ABOUT_THIS_THING),其中包含一個由當前表后綴構成的新列( extraction_date
)?
您可以將 SSIS 與新表“TABLE_ABOUT_THIS_THING”一起用作目標,並將如下所示的查詢作為源:
`Select * FROM table1
UNION
Select * FROM table2
UNION
.
.
.`
使用 SSIS:使用 union 從多表中收集數據,並在目標之前使用派生列作為提取日期,您可以從以下鏈接獲取更多信息: https : //www.tutorialgateway.org/union-all-transformation-in -ssis/
您可以使用UNION ALL
:
create view v_about_this_thing as
select convert(date, '20200131') as extraction_date t.*
from TABLE_ABOUT_THIS_THING_20200131
union all
select convert(date, '20201912') as extraction_date t.*
from TABLE_ABOUT_THIS_THING_20191231
union all
. . .
這恰好是一個分區視圖,它還有其他一些好處。
挑戰在於如何保持最新狀態。 我的建議是修復您的數據處理,以便將所有數據放入一個表中。 您還可以設置一個每月運行一次的作業並將最新值插入到現有表中。
另一種方法是每月或定期重建視圖。 您可以使用 DDL 觸發器執行此操作,該觸發器在新表出現時重新創建視圖。
另一種選擇是一次性創建一年的所有表——但為空——並每年手動創建一次視圖。 但是在你的日歷上有一個筆記來提醒你!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.