簡體   English   中英

訪問升遷:遷移旨在在本地運行的查詢

[英]Access upsizing: Migrating queries that were designed to run locally

我在大型舊版MS Access應用程序中有許多查詢,需要將其移至SQL Server。 但是,這些查詢從未被設計為在共享上下文中運行。 它們大多數是Access報告的記錄源。

大多數查詢都_ParameterInput了另一個開發人員創建的本地_ParameterInput表的聯接。 該表用於將參數傳遞到Access查詢中。 作為本地表,它嵌入在前端應用程序中,而不是后端MDB中。 整個應用程序中的大量代碼都假定_ParameterInput表的內容特定於當前用戶。

因此,我的問題是:對於像這樣的本地表遷移查詢,我有什么選擇? 到目前為止,這是我想出的:

  1. 表值函數。 我可以(痛苦地)將每個查詢重寫為一個表值函數,以便可以將參數直接傳遞給它。 像這樣依賴本地表的查詢有幾百個,因此這條路線並不理想。

  2. SQL Server臨時表,以某種方式鏈接到Access。 現有的本地_ParameterInput表可以成為一個鏈接#ParameterInput在服務器上。 我不知道該如何即時初始化,因此不需要通過顯式調用存儲過程來創建它。

歸根結底,我必須選擇一種可以實現目標的解決方案,但是理想情況下,我正在尋找一種不涉及觸摸數百個查詢以及可能包含數千個VBA功能的解決方案。

感謝您的任何幫助。

我處理了Ron Tornambe的評論,這實際上是我想出的。 我將現有表從_ParameterInput重命名為ParameterInput (不帶下划線),然后創建了一個視圖以對該表進行別名。

CREATE VIEW dbo._ParameterInput
AS
    SELECT * FROM [ParameterInput]
    WHERE [ParameterInput].[UserSID] = SUSER_SID();

我相信這種方法應該可以很好地滿足我的需求,盡管我還沒有進行廣泛的測試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM