SQL Server 数字数据类型在 MS Access 中变成 Short_Text

Posted

技术标签:

【中文标题】SQL Server 数字数据类型在 MS Access 中变成 Short_Text【英文标题】:SQL Server Numeric data type turns into Short_Text in MS Access 【发布时间】:2015-02-14 08:37:45 【问题描述】:

我们在服务器上运行 SQL Server 2008。我通过 ODBC(SQL Server Native Client 10)将 MS Access 2013 链接到 SQL Server 数据库之一的表。直到现在一切似乎都还好,当我意识到一种数据类型在从 SQL Server 传到 Access 时发生了变化。

SQL Server 中的数据类型是Numeric(38,8),但在 MS Access 中它变成了Short_text。任何想法为什么会发生这种情况以及我应该怎么做才能解决这个问题?

谢谢

【问题讨论】:

您能否提供已转换为 Short_text 的示例数据和来自 Ms-Access 数字列的示例单元格值(带小数位)?我认为这可能是本地化设置(数字格式差异和假设) 有趣,我刚试了一下,访问无法正确显示任何数据。我收到 ODBC 调用失败。但是,当我尝试使用数据过滤器时,我可以在过滤器菜单中看到我的数据。 转本地表后出现数据,连接到我的odbc文件时好像出了点问题 我不能把数据放在这里。对于 Ms-Access 中的值为零,数据显示为“.0000000” - 显然它在 SQL Server Studio 中显示为 0.000000。我想在下一阶段,我将尝试在 ODBC 连接设置中使用 SQL Server Native Client 11,看看效果如何...... @Tamas,看来您没有检查我的答案,只需将 sql 中的精度更改为 28,它应该可以工作 【参考方案1】:

原因是您选择的精度数为 38,大于 MS Access 2013 可接受的最大精度(即 28)

所以,它在访问中无法将其映射到Number数据类型,这就是它被转换为short_text的原因

但是,我发现这是 ODBC 中的一个错误,因为它应该提供警告或在日志中显示某些内容。 但是当我自己尝试的时候,发现日志是空的

【讨论】:

mGouda,感谢您的回答 - 我明天回去工作时会检查它...虽然这听起来是一个合理的解释... mGouda - 你是对的。我刚刚检查了一下,似乎 Access 与高精度 SQL 数据类型有点混淆。谢谢!

以上是关于SQL Server 数字数据类型在 MS Access 中变成 Short_Text的主要内容,如果未能解决你的问题,请参考以下文章

使用 ODBC 连接时如何在 MS Access 或 SQL Server 中使用日期数据类型

比较c#中sql server和ms访问的数据类型

Sqoop Hive 字符串数据类型转 MS SQL Server 类型

什么 MS SQL Server 类型映射到 Types.VARCHAR

按字母数字字符串 MS SQL Server 2012 中的相似性排序

MS SQL Server 时间函数