簡體   English   中英

Access 2010 前端將查詢傳遞給 SQL Server 2014 后端

[英]Access 2010 Frontend Passing Queries to an SQL Server 2014 Backend

我最近已將訪問后端轉移到 SQL Server,現在我知道如何將查詢傳遞到 SQL Server 以讓他進行計算。 但這僅適用於僅包含表的查詢,例如:

Q_測試:

SELECT * FROM T_Test

但是如果我想將一個查詢傳遞給包含另一個查詢的服務器(並且這個查詢也包含一些其他查詢),例如:

Q_Test3:

SELECT * FROM Q_Test2
INNER JOIN ..

Q_Test2:

Select * From Q_Test..

然后我認為它很笨重,並且對我來說將代碼轉換為“只有表”的 SQL 代碼變得很復雜。 是否有可能以巧妙的方式將包含子查詢的查詢傳遞給 SQL Server? 我已經在我的訪問前端保存了查詢,有些是通過 VBA 代碼打開的,有些是用表格的記錄源編寫的,需要更改它們才能使其工作。 對於僅包含表的查詢,VBA 代碼確實有效。

我非常感謝任何幫助

這里的主要問題是您試圖讓 SQL Server 使用 SQL Server 甚至可能不知道的 Access 構造。 它對 Access 查詢或 Access 文件中包含的任何其他對象一無所知。

它只知道它自己的對象——換句話說,您在 SQL Server Management Studio 的對象資源管理器中看到的就是您在傳遞查詢中“看到”的,因為這是您正在使用的環境。

您應該考慮到,傳遞查詢允許您使用對 Access 來說是外部的 SQL Server 構造,例如存儲過程或表值函數,或 Access SQL 方言中不支持的某些 T-SQL 語法。

考慮到這一點,您應該在 SSMS 中編寫存儲過程,對其進行測試,並在正確時從您的 Access 傳遞查詢中調用它。 如果您需要可更新性(例如將結果綁定到表單並編輯數據的能力),請考慮使用視圖。 請注意,對於視圖上哪些更新是合法的,存在一些限制。

請理解,傳遞查詢就是這樣做的。 SQL Server 不知道您的 Access 應用程序是關於什么的。

Access 和 ODBC 驅動程序知道這一點,因此如果您包含本地查詢、表或函數,則所有處理都將在 Access 中進行。

傳遞查詢只能處理服務器對象。 提示:然而,這些可能包括一個由您的 Access 應用程序填充的臨時表。

暫無
暫無

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

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