在SQL Server中使用0和0x0有什么区别?

时间:2014-11-26 06:02:01

标签: sql-server-2008-r2 sql-server-2012

您好我正在使用SQL Server 2012..Recently我正在努力从数据库的每个表中获取行数。我发现有4种不同的方法来获得它但是我发现的快速1是使用分区统计信息,即"的 dm_db_partition_stats "和" sys.objects "。然而,在进行加入时,我会看到它使用的条件,如" is_ms_shipped = 0x0 "。我的问题是使用" is_ms_shipped = 0 "和" is_ms_shipped = 0x0 " ?有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:4)

0x0是数据类型varbinary(1)和值0x00的文字。 (单个字节,所有位都设置为0)。

二进制数据类型具有lowest data type precedence,因此如果与a bit column进行比较,则会隐式转换为该数据类型。导致0

你应该使用0,因为它避免了使用0x0的隐式转换和不必要的混淆。