我們有一個可怕的設計數據庫,其中有一些程序,每週都會生成新表格,並且已經這樣做了幾年。它有一個SQL腳本,通過對各種表格的查詢獲取200列以上的數據,將其全部轉儲到一個名爲Selections的表中,然後在完成後,您必須每週手動重命名該表(Selections_Week001,Selections_Week002等)。現在我們有大約100多張桌子。我想要做的就是把所有的數據放到一張表中,列中有一列指明其原始源表(001,002等),這樣我就可以擺脫所有這些單獨的表。有沒有辦法使用一些SQL腳本來做到這一點,或者我將不得不手動編輯並運行100個附加查詢?將表格組合成一個
Q
將表格組合成一個
0
A
回答
1
試試這個對我來說,測試數據運行良好:
select *
into Selections_Total
from Selections_Week001
where 1=0
alter table Selections_Total
add Original_Table varchar(64)
--select * From Selections_Total
declare @sql varchar(max)
select @sql = COALESCE(@sql + ' UNION ALL select *, ''' + name + ''' from ', 'select *, ''' + name + ''' from ') + name
from sys.tables where name like 'Selections_Week%'
--select @sql
insert into Selections_Total
exec(@sql)
UPD:起初錯過with a column indicating its original source table
。現在修復。
相關問題
- 1. 將表格行組合成一行(Set?)
- 2. 將兩個腳本組合成一個Google表格
- 3. 將表格與TSQL組合成一張表格
- 4. 如何將單元格組合成一個乳膠表格中的一行?
- 5. Python-將兩個列表組合成一個列表列表
- 6. 將php數組組合成一個
- 7. 將兩個數組組合成一個哈希表
- 8. 將3個表合併成一個表
- 9. 將表格行中的單選按鈕組合成一個收音組
- 10. 將兩個腳本組合成一個
- 11. 將兩個圖組合成一個
- 12. 將兩個圖組合成一個圖
- 13. 將三個詞組合成一個?
- 14. PHPexcel:將兩個變量組合成一個單元格
- 15. 將數值組合成融合格式
- 16. 拿一個數組並將它組合成另一個數組
- 17. 將兩個或多個表組合成一個對象
- 18. 將兩個列表組合成csv
- 19. 將兩個不同大小的列表組合成一個組合
- 20. 將多個表格組合成自定義視圖模型
- 21. 將兩個表合併成一張表
- 22. 將兩個csv行組合成一行
- 23. 將多行組合成一個MySQL
- 24. SQL將行組合成一個
- 25. 將多行組合成一個查詢
- 26. 將mousenter/mouseleave組合成一個函數
- 27. 將CSS行組合成一個
- 28. 將一個按鈕組合成圖像
- 29. 將不同的單元格數組合成一個在MATLAB中
- 30. Excel將單元格內容組合成一個html代碼?
你可以在一個查詢中將它們全部結合在一起,並執行一次插入,但是如果你有大量數據正在進行,那麼這將成爲一個殺手。我會創建一個腳本,每次都可以創建一個表格(您可以輕鬆地在Excel中創建大量腳本)。我更喜歡通過一次性的方法來控制這個問題 –
我的觀點:我會考慮使用一些腳本語言來實現這一點,因爲動態sql是不必要的繁瑣。 – AndreasT
我只是希望寫一些能動態獲取每個表名並自動爲所有表添加附加內容,而不必重寫它100次 –