gpt4 book ai didi

sql-server - 将 rowversion 转换为 bigint

转载 作者:行者123 更新时间:2023-12-02 18:56:10 44 4
gpt4 key购买 nike

在我的 C# 程序中,我不想使用字节数组,因此我将 rowversion 数据类型转换为 bigint:

SELECT CAST([version] AS BIGINT) FROM [dbo].[mytable]

所以我收到一个数字而不是字节数组。这种转换总是成功吗?是否存在任何可能的问题?如果是这样,我应该将 rowversion 转换为哪种数据类型?

最佳答案

rowversionbigint 都占用 8 个字节,因此转换似乎是可能的。但不同的是,bigint 是有符号整数,而 rowversion 不是。

这是 rowversion 的最大值,将正确转换为最大正 bigint 数字 (9223372036854775807):

选择强制转换(0x7FFFFFFFFFFFFFFFF as bigint)

但是从这里开始,您将得到负数:

选择强制转换(0x8000000000000000 as bigint)

我没有检查后一个转换是否会在 C# 中引发错误。

表中的行数可能不会超过 9223372036854775807 行,但这仍然是您应该了解的内容,而且我个人不建议这样做,除非您确定解决方案中永远不会出现此问题。

关于sql-server - 将 rowversion 转换为 bigint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24039269/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com