Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL查询和MS Access查询返回不同的数据_Sql_Sql Server_Ms Access - Fatal编程技术网

SQL查询和MS Access查询返回不同的数据

SQL查询和MS Access查询返回不同的数据,sql,sql-server,ms-access,Sql,Sql Server,Ms Access,我使用MS Access作为MS SQL server的前端 当我在ms Access中使用SQL查询时,我认为它相当于从SQL server运行的查询,Access会返回不同的数据。下面的图片说明了不同之处。我使用Access 2003,并通过ODBC将Access表连接到SQL server 2008 有人知道怎么解决这个问题吗 提前谢谢 /伊尔吉特 SQL和Access查询及结果: 不同的是Projekt列 我会停止使用Access。它看起来很破。首先,让我们了解select语句访问真正使

我使用MS Access作为MS SQL server的前端

当我在ms Access中使用SQL查询时,我认为它相当于从SQL server运行的查询,Access会返回不同的数据。下面的图片说明了不同之处。我使用Access 2003,并通过ODBC将Access表连接到SQL server 2008

有人知道怎么解决这个问题吗

提前谢谢

/伊尔吉特

SQL和Access查询及结果:

不同的是Projekt列


我会停止使用Access。它看起来很破。首先,让我们了解select语句访问真正使用的是什么

在SSMS SQL Server Management Studio中,转到工具->SQL Server探查器


连接到同一数据库,然后查看Access正在做什么。文件->新建->连接->运行。

好的,我看到一些东西

在MS SQL上是否有表的主键设置?这可能会混淆MS Access。 布尔列确实有不同的值,但我认为这是因为MS Access喜欢以不同于MS SQL的方式表示它们。你将不得不忍受的。
重新创建访问链接表。有时访问内部定义会出错,尤其是当链接服务器数据结构发生一些更改时,表/列会被重新创建/更改或类似


顺便说一句,Access本身当然不错,只是它是用于简单的桌面“数据库”。它有很多限制和一些怪癖,但它非常有用。

好的,我解决了这个问题。显然,如果没有唯一标识符,Access将无法执行任何操作。由于我的表中没有该行,Access使用CVRnr作为标识符,但由于它不是唯一的,Access只提取第一行并对其进行复制,因此数据不正确

我添加了唯一标识符,并将其正确链接到Access,现在它可以工作了

非常感谢你们的帮助和建议,如果你们中的一些人没有建议的话,我想我永远也不会找出原因是标识符


你救了我

您必须指向两个不同的表。Access/SQL Server不会造成您观察到的差异。它是服务器上唯一包含这些列和信息的表,所以这不是问题所在。而且该表肯定是链接表,而不是导入表?因为我也看不出Access在这种情况下会给你不同结果的任何原因。表肯定是链接的。当我从Access og SSMS中更改数据时,它会在我更新Access和SSMS中的数据时显示。首先:我做了跟踪,但我不确定如何处理它。这个链接是Access所做的:第二:我同意Access是垃圾,但我不是一个程序员,我知道一些VBA和一点C。是否有其他应用程序或类似Access的东西可以作为SQL server的前端而不是Access?CVRNr是表中的主键吗?你能发布表模式吗?看看跟踪,就像你说的是同一个表和数据库。但access只要求一行。那些主键呢?-1表示放弃访问。对于这个问题,只有无知的人才会提出这样的回答。跟踪正在做一些我不理解的奇怪的事情,并向我建议表可能没有PK或适当的索引。为了能够使用ODBC数据源中的表,Access必须具有主键。另外,我发现确保每个表都有一个timestamp字段很有帮助。这有助于访问绑定表单并适当刷新数据。将条件更改为WHERE CVRNr='10598184'时会发生什么情况?考虑到Kunde和CVRNr似乎是依赖数据,而且跟踪也表明了这一点,看起来确实存在冗余数据。内部定义不会变糟,只是如果目标表/视图发生更改,存储在表链接中的元数据可能会过时。在服务器上更改表/视图的任何链接时,删除并重新创建这些链接是bog的标准。[Access是为简单的桌面“数据库”而设计的。Access确实支持这一点,但它完全可以扩展,以覆盖大部分的所有类型的数据库应用程序。问题中没有任何东西表明海报的情况固有的东西使Access不适合作为前端。看,我不是说英语的人;我无法即时生成“如果目标表/视图被更改,存储在表链接中的元数据可能会过时”之类的语句。“坏掉”当然是相同的意思,只是用更短的方式表达,显然是错误的;坏掉并不等于不再准确。如果您更改了服务器端对象,您可能需要更改与该对象的客户端交互。您不会说使用从目标表中删除的字段的代码已损坏,而是说需要更新代码以反映该字段
d.定义。同样,需要删除并重新创建链接表,以反映对链接到的服务器端对象的更改。Projekt列中的结果不匹配,我认为这是实际问题,而不是标准的布尔转换。