我使用 SSMA 将包含布尔数据(是/否)类型的访问表链接到 SQL 服务器。它在SQL Server中显示为位字段。
如果我转到 SSMS 中的"对象属性"面板并选择"编辑前 200 行",我可以看到位字段表示为真/假。但是,对于同一个表,如果我这样做:
select * from table
输出显示位字段的值为 0/1,而不是 true 或 false。为什么会这样?
它只是一种显示格式。 bit
和boolean
实际上是一回事。bit
数据类型甚至很乐意接受 T-SQL 中'TRUE'
和'FALSE'
的varchar
值:
DECLARE @b1 bit = 'TRUE', @b2 bit = 'FALSE';
SELECT @b1, @b2;
这将分别返回1
和0
。
许多处理bit
/boolean
数据类型的应用程序(如.Net)都乐于使用0
/FALSE
,并且1/TRUE
也可以互换使用。在任何一种情况下,它们的价值都是相同的。