我在需要移动到SQL Server的大型旧版MS Access应用程序中有许多查询。但是,这些查询从未设计为在共享上下文中运行;其中大多数是Access报告的记录源。
嵌入在大多数查询中,是与另一个开发人员创建的本地_ParameterInput
表的连接。此表用于将参数传递到Access查询。作为本地表,它嵌入在前端应用程序中,而不是后端MDB中。整个应用程序中的大量代码假定_ParameterInput
表的内容特定于当前用户。
我的问题是:我有哪些选项来迁移依赖于这样的本地表的查询?这是我到目前为止所提出的:
表值函数。我可以(痛苦地)将每个查询重写为表值函数,以便可以直接将参数传递给它。有几百个查询依赖于这样的本地表,所以这条路线不太理想。
SQL Server临时表,Access以某种方式链接到它。现有的本地_ParameterInput
表可以成为服务器上#ParameterInput
的链接。我不知道如何在运行时初始化它,因此不需要通过显式调用存储过程来创建它。
在一天结束时,我必须选择一个能够实现目标的解决方案,但理想情况下,我正在寻找一些不涉及数百个查询和可能数千个VBA功能的内容。
感谢您的帮助。
答案 0 :(得分:0)
我处理了Ron Tornambe的评论,这实际上是我想出来的。我将现有表从_ParameterInput
重命名为ParameterInput
(没有下划线),然后创建了一个视图来对表进行别名。
CREATE VIEW dbo._ParameterInput
AS
SELECT * FROM [ParameterInput]
WHERE [ParameterInput].[UserSID] = SUSER_SID();
我相信这种方法应该能够满足我的需求,尽管我还没有进行过广泛的测试。