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