我试图将一个列设置为64位整数,但我唯一可用的选项是tinyint、smallint和int。bigint跑到哪里去了?注意:我使用Access 2008访问我的SQL Server。
zed5wv101#
SQL Server没有问题。在SQL Server 2005中,您可以将列声明为bigint,如下所示:
Create Table Table( Col1 bigint )
问题是MS Access无法将bigint识别为数据类型。这里有一个关于这个问题的article,它讨论了使用ADO时的一些变通办法。这里有一个来自Microsoft的help article,它指出Access仍然不能识别bigint(请参阅 * Access数据库和Access项目之间数据类型的比较或Map * 一节)。
bigint
3vpjnl9f2#
Access 2007没有bigint数据类型,这就是为什么您没有将其视为可用选项的原因。如果需要这么大的整数,可以将其存储为CURRENCY类型(SQL Server中为MONEY),然后乘以或除以10000来执行转换。
myCurrency = myBigInt / 10000 myBigInt = myCurrency * 10000
carvr3hs3#
Here's a table正在将Access数据类型与其ODBC等效项进行比较。此处没有bigint。这里有一篇名为Handling the SQL Server bigint data type in Access 2007 using ADO的文章,它提供了两种处理方法:将bigint转换为varchar或变量。当然,这些会让你感到恶心,但听起来它们可能会解决你的问题。
3条答案
按热度按时间zed5wv101#
SQL Server没有问题。在SQL Server 2005中,您可以将列声明为bigint,如下所示:
问题是MS Access无法将
bigint
识别为数据类型。这里有一个关于这个问题的article,它讨论了使用ADO时的一些变通办法。这里有一个来自Microsoft的help article,它指出Access仍然不能识别bigint(请参阅 * Access数据库和Access项目之间数据类型的比较或Map * 一节)。
3vpjnl9f2#
Access 2007没有bigint数据类型,这就是为什么您没有将其视为可用选项的原因。
如果需要这么大的整数,可以将其存储为CURRENCY类型(SQL Server中为MONEY),然后乘以或除以10000来执行转换。
carvr3hs3#
Here's a table正在将Access数据类型与其ODBC等效项进行比较。此处没有
bigint
。这里有一篇名为Handling the SQL Server bigint data type in Access 2007 using ADO的文章,它提供了两种处理方法:将bigint转换为varchar或变量。当然,这些会让你感到恶心,但听起来它们可能会解决你的问题。