这MSDN page个州:
不可存活的rowversion列在语义上等同于a 二进制(8)列。可空的rowversion列是语义上的 相当于varbinary(8)列。
鉴于非可空行反转列在语义上等同于二进制(8)列,为什么可空行反转列在语义上等同于varbinary(8)列而不是可空的二进制(8)列?
这是否意味着可空的rowversion列在语义上在语义上不等于可空的二进制(8)列?
我的具体例子是我将有一个表,其中包含来自其他表的行的副本。某些源表具有rowversion而其他源表没有。因此,我的表中的“rowversion”列必须接受空值。我想了解为什么(或者如果)列应该是varbinary(8)null而不是binary(8)null。
答案 0 :(得分:1)
二进制(8)是一个二进制文件,只有8个字节。 varbinary(8)是一个最多8个字节的二进制文件。 null为0字节。 它必须是一个可以有0或8个字节的表单。 因此它必须是varbinary。