各位大佬好,現在遇到一個問題,想請教下,現在的情況下:
集團下有多了分公司,但需要查看整個集團下所有分公司的庫存資料時,現在用的是這個表:
SELECT * FROM [erp_company_a(子公司a的資料庫庫名)].[dbo].[庫存資料表]
UNION ALL
SELECT * FROM [erp_company_b(子公司b的資料庫庫名)].[dbo].[庫存資料表]
UNION ALL
SELECT * FROM [erp_company_c(子公司c的資料庫庫名)].[dbo].[庫存資料表]
目前這串陳述句執行后,是能夠實作一次性查看所有子公司庫存資料的,且能夠實作這個需求的。
但現在遇到的困惑是:集團下有10多個分公司,如果照上面的代碼寫的話,每段同代碼我要重復
差不多10多次,有沒有什么簡短的代碼可以實作同樣的效果呢?
uj5u.com熱心網友回復:
封裝為存盤程序, 在存盤程序中動態產生SQL后執行.uj5u.com熱心網友回復:
專門維護一張表,把每個子公司的庫名保存進去。要查詢的時候,動態回圈生成和執行陳述句。uj5u.com熱心網友回復:
#1, #2 相結合。另外,建議做成視圖,如果子公司有增加或減少,用存盤程序重新生成一次視圖即可。
這樣,所有人都只訪問視圖,不需要寫那么多代碼,也不用操心子公司有多少個。
視圖的形式類似:
IF OBJECT_ID('view_庫存資料表_ALL') IS NOT NULL
DROP VIEW view_庫存資料表_ALL
GO
CREATE VIEW view_庫存資料表_ALL
AS
SELECT * FROM [erp_company_a(子公司a的資料庫庫名)].[dbo].[庫存資料表]
UNION ALL
SELECT * FROM [erp_company_b(子公司b的資料庫庫名)].[dbo].[庫存資料表]
UNION ALL
SELECT * FROM [erp_company_c(子公司c的資料庫庫名)].[dbo].[庫存資料表]
GO
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/258272.html
標籤:疑難問題
上一篇:資料庫表分段顯示
下一篇:sql語言怎么修改資料?
