如何在SQL Server中创建是/否布尔字段?

时间:2009-11-22 00:13:02

标签: sql-server boolean sqldatatypes

从访问数据库转换或一般情况下创建是/否布尔字段的最佳做法是什么?

11 个答案:

答案 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.

     

Reference

注意:最好将值保持为1和0,仅保留数据类型NOT NULL

因为Bit的值为1,0,所以为NULL。请参阅真值表。因此,计划价值。它可能通过允许位数据类型的NULL值来增加混淆。

  

enter image description here

     

Reference

答案 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是最合适的选择。否则我曾为此目的使用int1& true 0的{​​{1}}。

答案 10 :(得分:1)

  

在任何版本的SQL Server Management Studio中,使用BIT作为数据类型

这将为您提供TrueFalse值选项。如果您只想使用10,则可以使用以下方法:

CREATE TABLE SampleBit(
    bar int NOT NULL CONSTRAINT CK_foo_bar CHECK (bar IN (-1, 0, 1))
)

但我会严格建议BIT作为最佳选项。完全希望能对某人有所帮助。