过去 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 的一些信息
关于sql-server - MS Access 2007 查询不在 SQL Server 2008 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9773754/