Sql server 如何有效地将Access SQL结果与SQL Server结果进行比较?

Sql server 如何有效地将Access SQL结果与SQL Server结果进行比较?,sql-server,ms-access,Sql Server,Ms Access,我正在尝试将Access查询转换为SQL视图。我可以很容易地看到在这两种情况下返回了多少记录。但要确保记录匹配变得越来越困难,因为我必须手动检查它。此外,我没有检查每一条记录,因此可能存在一些我没有注意到的转换错误 是否有办法自动检查至少部分结果?在某种程度上,你问错了问题 当您将数据迁移到sql server时,此时假定所有数据都已迁移到sql server。我想你可以一次性检查一下记录的数量 此时,将表(可能指向访问后端)链接到现在指向sql server的表 在这一点上,Access中所有

我正在尝试将Access查询转换为SQL视图。我可以很容易地看到在这两种情况下返回了多少记录。但要确保记录匹配变得越来越困难,因为我必须手动检查它。此外,我没有检查每一条记录,因此可能存在一些我没有注意到的转换错误


是否有办法自动检查至少部分结果?

在某种程度上,你问错了问题

当您将数据迁移到sql server时,此时假定所有数据都已迁移到sql server。我想你可以一次性检查一下记录的数量

此时,将表(可能指向访问后端)链接到现在指向sql server的表

在这一点上,Access中所有现有的查询都应该可以正常工作。迁移后,不需要测试和检查这一点

对于绑定到表(链接表)的现有表单,则不需要在sql server上创建视图,这既不需要也不需要

只有在access查询运行缓慢时,才能将access查询转换为视图

对于一个简单的查询,比如对一个包含100万张发票的表,您可以继续使用Access查询(针对链接表运行)。如果执行以下查询:

从tblInvoices中选择*,其中invoiceNum=12345

然后Access只会将一条记录拉入网络管道。因此,通过将此查询转换为视图(不要这样做!!!–您只是在浪费宝贵的时间和金钱),将不会产生任何需求和性能提升

但是,对于具有多个联接和多个表(通常不用于表单)的复杂查询,您确实希望将这些请求转换为视图,然后为视图指定与access(客户端)查询相同的名称

因此,在迁移之后,您不会“突然”在sql server上看到大量视图

您可以迁移数据,链接表。在这一点上,99%的应用程序将像以前一样正常工作。迁移后,您不需要创建任何视图

创建视图是一个“事后”过程,发生在应用程序运行之后。因此,在应用程序启动并运行之前,不会创建视图。(并已部署)

要使access应用程序与sql server一起工作,您不需要创建任何视图。您甚至不创建一个视图

您迁移了数据,链接了表,现在您的应用程序应该可以工作了

您仅开始为运行缓慢的access查询创建视图

例如,您可能有一个现在运行缓慢的报告。原因是,尽管access对大多数现有的请求(您不必更改)做得很好,但对于某些请求,您会发现access客户端在运行该查询方面做得“不太理想”

因此,您可以将access中的查询切换到sql视图模式,将该sql剪切并粘贴到sql管理器中(创建视图)。然后修改查询的语法。对于某些sql,在access designer中启动查询,然后在sql server中启动sql designer,并简单地从头开始重新创建sql,以取代剪切+粘贴的想法,这样可能会省力。(两种方法都可以很好地工作——这取决于您使用的sql有多“疯狂”,以及您认为哪种方法更适合您(尝试两种方法,看看哪种方法最适合您)。有些人喜欢剪切+psate sql,而其他人则喜欢在这两种情况下(在两个监视器上)简单地查看图形设计器,并以这种方式工作

此时,创建sql查询(视图)后,只需运行该视图,并查看记录计数。然后运行access客户端上的查询,如果它返回相同数量的记录,则在999.9%的情况下,您可以确信sql查询(视图)是生成与客户端查询相同的结果。现在,您可以删除(或重新命名)access查询,链接到视图(赋予它与access查询相同的名称),然后即可完成

使用access客户端查询的2个或20个位置现在将使用该视图。完成此操作后,您不必担心或修改access中的任何内容

现在视图工作了,然后将access前端重新部署到所有工作站(我假设您有一些方法来更新access应用程序部分,就像您在不使用sql server时所做的那样)

在这一点上,用户都很开心,都在工作

如果在第二天左右,您现在发现另一个运行缓慢的报表(大多数不会),那么该access查询将成为您转换为视图的可能选择

因此,对于access中有200个要求的应用程序,通常只需将其中的2-10个转换为视图。绝大多数保存access的查询不会也不应该转换为视图。将运行良好且性能良好的access查询转换为视图是浪费时间的

因此,您的问题建议您必须将“很多”访问要求转换为视图。这从来都不是事实,也不是要求

因此,将access查询转换为视图所需的次数将非常少。大多数表单都基于表。或者现在是链接到sql server的表。在这种情况下,您不想转换为视图,也不需要转换

因此,这里的答案是简单地运行access查询,然后运行视图。它们都在处理相同的数据(您使用链接表,access查询将命中这些链接表并正常工作)。如果使用链接到sql server的表的access客户端返回的记录数与您在sql server上的视图数相同,则如上所述,您已完成999.8%,现在可以安全地重新命名access查询,并使用相同的名称链接到视图

然而,tim的数量