我想将列设置为64位整数,但我唯一可用的选项是tinyint,smallint和int。 bigint跑到哪里去了?SQL Server 2005 bigint丢失?
笔记:我使用Access 2008访问我的SQL Server。
我想将列设置为64位整数,但我唯一可用的选项是tinyint,smallint和int。 bigint跑到哪里去了?SQL Server 2005 bigint丢失?
笔记:我使用Access 2008访问我的SQL Server。
问题不在于SQL Server。在SQL Server 2005中,你可以声明一个列为BIGINT像这样:
Create Table Table(Col1 bigint)
的问题是,MS Access不能识别bigint
作为数据类型。
这是关于这个问题的article,它讨论了使用ADO时的一些解决方法。以下是来自Microsoft的help article,其中指出Access仍然无法识别bigint(请参阅比较或映射Access数据库和Access项目之间的数据类型)。
谢谢,我想它与使用Access有关。 – isorfir 2010-06-29 16:52:57
访问2007年没有bigint数据类型,这就是为什么你没有看到它作为一个可用的选项。
如果您需要一个很大的整数,您可以将它存储在CURRENCY类型(在SQL Server中为MONEY)中,然后乘以或除以10000以执行转换。
myCurrency = myBigInt/10000
myBigInt = myCurrency * 10000
Here's a table比较访问的数据类型与他们的ODBC等价物。那里没有bigint
。
这里有一篇名为Handling the SQL Server bigint data type in Access 2007 using ADO的文章,它提供了两种方法来处理这个问题:将bigint转换为varchars或变体。当然,这些让你感到不安,但他们听起来像是可以处理你的问题。
其称为some_arbitrary_name_thats_inconsistent_between_versions_and_all_other_microsoft_technologies – 2010-06-29 16:43:29
@Andrew:不是。 MSACCESS中没有BigInt等价物。 – 2010-06-29 17:00:51