SQL相当于C#BigInteger

mat*_*mmo 3 c# t-sql sql-server

所以,我一直在使用.NET 4中BigInteger引入的新类来存储难以置信的大数字.

现在,我开始考虑将这些数字保存到数据库(SQL Server).我的问题是,这甚至可能吗?据我所知和我研究的内容,SQL数据类型不包含与行为相对应的属性BigInteger(理论上没有最小值或最大值).

我见过的最接近的是bigint,但有一个最小-2^63 (-9,223,372,036,854,775,808)最大2^63-1 (9,223,372,036,854,775,807).

Thi*_*ter 8

如果您的SQL服务器的DECIMAL类型不支持的精度,你需要你只需把号码存储为一个字符串或二进制,即一个选项VARCHAR,TEXTVARBINARY领域.


Mar*_*tos 5

你可以存储调用的结果yourBigInt.ToByteArray()VARBINARY(…),随后使用检索它BigInteger(byte[])的构造函数.

这种方法的主要缺点是SQL Server在处理值作为数字的能力方面受到限制(可能仅限于比较它们).然而,对于任何不适合的事情来说,这已成定局bigint.

  • @mattytommo:不是`VARBINARY(MAX)`.如果您使用2005之前的服务器(并且尚未自杀),您可以使用"IMAGE"代替. (2认同)
  • @mattytommo:量子物理学不是一个免于监狱的卡.可观察宇宙的体积小于10 ^ 200普朗克体积,这对宇宙可以容纳的信息位数设置了一个硬上限.无论如何,更实际,一切都有限制.例如,NTFS将其打包为16 EB.更具体地说,SQL Server在其存储容量的每个维度上强加[显式限制](http://msdn.microsoft.com/en-us/library/ms143432.aspx). (2认同)