为什么可空的rowversion列在语义上等同于varbinary(8)?

时间:2013-06-07 11:42:47

标签: sql-server database-design sqldatatypes

MSDN page个州:

  

不可存活的rowversion列在语义上等同于a   二进制(8)列。可空的rowversion列是语义上的   相当于varbinary(8)列。

鉴于非可空行反转列在语义上等同于二进制(8)列,为什么可空行反转列在语义上等同于varbinary(8)列而不是可空的二进制(8)列?

这是否意味着可空的rowversion列在语义上在语义上不等于可空的二进制(8)列?

我的具体例子是我将有一个表,其中包含来自其他表的行的副本。某些源表具有rowversion而其他源表没有。因此,我的表中的“rowversion”列必须接受空值。我想了解为什么(或者如果)列应该是varbinary(8)null而不是binary(8)null。

1 个答案:

答案 0 :(得分:1)

二进制(8)是一个二进制文件,只有8个字节。 varbinary(8)是一个最多8个字节的二进制文件。 null为0字节。 它必须是一个可以有0或8个字节的表单。 因此它必须是varbinary。