此MSDN page指出:
假定不可为空的rowversion列在语义上等效于binary(8)列,为什么要说可为空的rowversion列在语义上等效于varbinary(8)列而不是可为null的binary(8)列?
这是否意味着可为空的rowversion列在语义上不等同于可为null的binary(8)列?
我的特定示例是,我将有一个表,其中将包含其他表中的行的副本。一些源表具有行版本,而其他源表则没有。因此,我表中的“rowversion”列必须接受空值。我想了解为什么(或是否)该列应为varbinary(8)null而不是binary(8)null。
最佳答案
一个binary(8)是一个二进制文件,它的大小恰好为8个字节。
varbinary(8)是具有最多8个字节的二进制文件。
空为0字节。
它必须是可以具有0或8个字节的形式。
因此,它必须是varbinary。
关于sql-server - 为什么可为空的rowversion列在语义上等效于varbinary(8)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16983290/