yes/no
转换或一般转换后,创建Boolean
(即access database
)字段的最佳做法是什么?#1 楼
等效的是BIT
字段。在
SQL
中,您可以使用0
和1
设置位字段(就像Access中的yes / no字段一样)。在Management Studio中,它显示为false / true值(至少在最新版本中显示)。通过ASP.NET访问数据库时,它将字段显示为布尔值。
#2 楼
BIT
数据类型通常用于存储boolean
值(对于0
为false
,对于1
为true
)。评论
在SQL标准中指定了BIT?我很难找到它。我能看到的最接近的是“布尔类型”。
– asss
16年7月1日在15:49
您是否担心位和布尔的语义不同?
–黑暗无耻
17年3月14日在20:15
#3 楼
您可以使用bit
列类型。#4 楼
您可以使用BIT
字段。要在现有表中添加BIT列,SQL命令应类似于:
您想要创建一个新表,可以执行:
ALTER TABLE table_name ADD yes_no BIT
。#5 楼
您可以使用数据类型bit
插入的大于0的值将存储为'1'
插入的小于0的值将存储为'1 '
插入为'0'的值将被存储为'0'
对于MS SQL Server 2012 Express而言如此
评论
您确定有关值小于0的语句吗?
– BiLaL
15年12月3日在8:14
@BiLaL这是大多数语言中的常见行为。 0为假,任何非0的数字为true。 -1作为true的默认值也是很常见的,因为在有符号二进制文件中,每个位都设置为1。如今,将1作为true的默认值(仅设置最低有效位)是很常见的。
– CJ Dennis
16年6月27日在3:33
#6 楼
已经有回答说使用Bit。我将在这些答案中添加更多内容。您应该使用位来表示布尔值。
MSDN文章中的评论。 。
SQL Server数据库引擎优化了位列的存储。如果表中有8位以下的列,则这些列将存储为1个字节。如果存在9到16位列,则这些列
存储为2个字节,依此类推。
字符串值TRUE和FALSE可以转换为位值:TRUE
转换为1并将FALSE转换为0。
转换为bit会将任何非零值提升为1。仅数据类型为
NOT NULL
位的值分别为1、0和NULL。参见真值表。因此,请相应地计划值。通过为位数据类型允许NULL值,可能会增加混乱。
参考
#7 楼
创建表时的示例用法:[ColumnName] BIT NULL DEFAULT 0
#8 楼
您可以使用BIT
字段创建新表:CREATE TABLE Tb_Table1
(
ID INT,
BitColumn BIT DEFAULT 1
)
在现有表中添加列:
ALTER TABLE Tb_Table1 ADD BitColumn BIT DEFAULT 1
要插入记录:
INSERT Tb_Table1 VALUES(11,0)
#9 楼
bit
将是最简单的并且占用最少的空间。与“是/否”相比,不是很冗长,但我可以接受。评论
我认为最好-不必担心Y == y和N = n,无论是真还是假。意图是完全显而易见的,并且没有单个字符字段邀请的“特殊”情况:)
–Rob Grant
2014年1月15日上午10:46
#10 楼
bit
是最合适的选择。否则,我曾经将int
用于此目的。 1
的true
和0
的false
。评论
通常,对于False使用0,对于True使用非零。
–教育
16年7月15日在16:23
有很多口味或真实的说法可能是一个好的政治家:D
–布达·弗洛林(Buda Florin)
16 Dec 2'在8:53
#11 楼
在任何版本的SQL Server Management Studio中,将
BIT
用作数据类型,它将为您提供
True
或False
值选项。如果只想使用1
或0
,则可以使用以下方法:CREATE TABLE SampleBit(
bar int NOT NULL CONSTRAINT CK_foo_bar CHECK (bar IN (-1, 0, 1))
)
但是我会严格建议
BIT
作为最佳选择。完全希望它能帮助某人。
评论
而且,如果您在Access数据库中链接了表,则true的值为-1,false的值为0。至少在Access 2003中。
–亨里克·埃兰森(Henrik Erlandsson)
2013年9月20日上午10:02
请注意,它并不完全等效。如果标量函数返回一位,则仍然需要测试它是0还是1。例如,dbo.IsReturnsBit(value)= 1
–达伦·格里菲斯(Darren Griffith)
2014-09-19 18:26
@ D-Money:是的,但是如果要在条件中使用该值,则只需要进行比较即可。如果在结果中使用该值,则不应进行比较。
–古法
2015年6月7日在10:31
关于Mgt Studio,如果要复制粘贴数据,则还需要将其设置为True / False,而不是1或0。
– gorlaz
15-10-27在21:44