sql-server - MS Access 2007 查询不在 SQL Server 2008 上运行

标签 sql-server ms-access ms-access-2007

过去 4 个月,我正在 C# VS 2010 中开发一个应用程序。我使用 MS Access 2007 成功存储了近 20 个表。

今天我意识到 MS Access 2007 无法始终如一地处理我的数据库。因此我决定使用带有升迁向导的 SQL Server 2008 R2 Express,它真的很棒!

但是,当我尝试运行我已经很好开发的应用程序的各种选项时,每次向 SQL Server 发起查询时,它都会抛出错误。

我了解到,MS Access 支持的 SQL 的很多东西,MS SQL Server 都不支持

例如:使用日期查询,当我们使用“#”表示日期格式时,SQL Server 2008 将无法识别。

此外,对于 Bool 值,MS Access 将其存储为 True 和 False,而 SQL Server 使用 0。

所有这些查询都与 Access 07 完美配合

我确信必须有某种方法让 SQL Server 能够理解 MS Access 查询。

或者我必须编辑我的整个应用程序吗?就像挖矿赚金子一样。

我已使用 System.Data.SqlClient 更改了所有数据 Access 对象,例如读取器、适配器、命令、与 SQL 数据对象的连接。

所以,这不是问题。

请尽快帮助我。

谢谢。

最佳答案

您不能强制 SQL Server 运行 MS Access 查询。这些查询需要重写以使用 T-SQL 而不是 MS Access 使用的查询语言。

我感受到了你的痛苦,我只需要重写一个需要重新创建才能在 SQL Server 中使用的大型 MS Access 应用程序(超过 1k 个查询)。

有些查询可能可以直接移植,但正如您注意到的带有日期的查询,甚至一些聚合函数(First() 等)在 SQL Server 中没有使用,这些查询需要需要改变。

这是一个链接,其中包含有关将 Access 转换为 SQL 的一些信息

Converting Access Queries to SQL Server

关于sql-server - MS Access 2007 查询不在 SQL Server 2008 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9773754/

相关文章:

sql - Access-根据另一个表中的任何匹配字段计算一个字段

xml - 将 xml 数据从 Web 导入 MS-Access 2007

c# - 查询在 Visual Studio 2017 中不起作用,但直接在 SQL Server 中起作用

sql - 使用 MS SQL Server 2005,如何将详细记录合并到单个逗号分隔列表中

sql-server - 如何在创建表中创建非聚集索引?

php - 如何使用php将mysql数据库导出到ms access中

ms-access - SSIS 中的 Microsoft Office 12.0 Access 数据库引擎 Oledb 提供程序

java - 我需要连接我的 java 应用程序来访问 Windows 7 x64 中的数据库?

java - 将 null 插入 MS Access 中的日期/时间字段 -

mysql - 如何从两个表中获取相同列值的结果?