从访问数据库转换或一般情况下创建是/否布尔字段的最佳做法是什么?
答案 0 :(得分:372)
等效字段是位字段。
在SQL中,您使用0和1来设置位字段(就像Access中的是/否字段一样)。在Management Studio中,它显示为false / true值(至少在最近的版本中)。
通过ASP.NET访问数据库时,它会将该字段公开为布尔值。
答案 1 :(得分:96)
BIT
数据类型通常用于存储布尔值(0表示false,1表示true)。
答案 2 :(得分:21)
您可以使用bit
列类型。
答案 3 :(得分:17)
您可以使用数据类型bit
插入的值大于0的值将存储为“1”
插入的值小于0的值将存储为“1”
插入为'0'的值将存储为'0'
这适用于MS SQL Server 2012 Express
答案 4 :(得分:16)
您可以使用BIT
字段。
要将BIT列添加到现有表,SQL命令将如下所示:
ALTER TABLE table_name ADD yes_no BIT
如果要创建新表,可以执行:CREATE TABLE table_name (yes_no BIT)
。
答案 5 :(得分:13)
已有答案说使用Bit。我将为这些答案添加更多内容。
您应该使用bit来表示布尔值。
MSDN文章的评论。
位可以取值1,0或NULL。
SQL Server数据库引擎优化了位列的存储。如果 表中有8位或更少位列,列存储为 1个字节。如果有9到16位列,则列为 存储为2个字节,依此类推。
字符串值TRUE和FALSE可以转换为位值:TRUE 转换为1,FALSE转换为0。
转换为位会将任何非零值提升为1.
NOT NULL
因为Bit的值为1,0,所以为NULL。请参阅真值表。因此,计划价值。它可能通过允许位数据类型的NULL值来增加混淆。
答案 6 :(得分:13)
创建表时的示例用法:
[ColumnName] BIT NULL DEFAULT 0
答案 7 :(得分:10)
您可以使用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)
答案 8 :(得分:9)
bit
将是最简单的,也占用最少的空间。与“Y / N”相比并不是很冗长,但我很好。
答案 9 :(得分:5)
bit
是最合适的选择。否则我曾为此目的使用int
。 1
& true
0
的{{1}}。
答案 10 :(得分:1)
在任何版本的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
作为最佳选项。完全希望能对某人有所帮助。