从 access database
转换时或一般情况下创建 yes/no
即 Boolean
字段的最佳做法是什么?
等效项是 BIT
字段。
在 SQL
中,您使用 0
和 1
设置位字段(就像 Access 中的是/否字段)。在 Management Studio 中,它显示为假/真值(至少在最近的版本中)。
通过 ASP.NET 访问数据库时,它会将字段公开为布尔值。
BIT
数据类型通常用于存储 boolean
值(0
代表 false
,1
代表 true
)。
您可以使用 bit
列类型。
您可以使用 BIT
字段。
要将 BIT 列添加到现有表,SQL 命令如下所示:
ALTER TABLE table_name ADD yes_no BIT
如果您想创建一个新表,您可以这样做:CREATE TABLE table_name (yes_no BIT)
。
您可以使用数据类型 bit
插入的大于 0 的值将存储为 '1'
插入的小于 0 的值将存储为 '1'
插入为“0”的值将存储为“0”
这适用于 MS SQL Server 2012 Express
0
为假,任何非0
数字为真。 -1 作为 true 的默认值也很常见,因为在有符号二进制文件中,它的每个位都设置为 1。如今,将 1 作为 true 的默认值(仅设置最低有效位)是很常见的。
已经有答案说使用Bit。我将在这些答案中添加更多内容。
您应该使用 bit 来表示布尔值。
来自 MSDN 文章的备注。
Bit 可以取值 1、0 或 NULL。 SQL Server 数据库引擎优化了位列的存储。如果表中有 8 个或更少的位列,则这些列存储为 1 个字节。如果有 9 到 16 位列,则这些列存储为 2 个字节,依此类推。字符串值 TRUE 和 FALSE 可以转换为位值:TRUE 转换为 1,FALSE 转换为 0。转换为位会将任何非零值提升为 1。参考
注意:将值保留为 1 和 0 是一种很好的做法,只有数据类型为 NOT NULL
因为 Bit 具有值 1、0 和 NULL。参见真值表。因此,相应地计划价值。允许位数据类型为 NULL 值可能会增加混乱。
参考
Bit can take a value of 1, 0, or NULL.
如果位数据类型允许空值,我不必在字段定义中指定空值吗?这个定义让我觉得 [field1] [bit] NULL
和 [field1] [bit]
是等价的?
创建表时的示例用法:
[ColumnName] BIT NULL DEFAULT 0
您可以使用 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)
bit
将是最简单的,并且占用的空间也最少。与“是/否”相比不是很冗长,但我很好。
bit
是最合适的选项。否则,我曾经为此目的使用过 int
。 1
用于 true
和false
的 0
。
在任何版本的 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
作为 BEST 选项。完全希望它对某人有所帮助。
如果您使用 Postgres,BIT 类型将不支持它。因此,您必须使用 INT 来存储布尔类型。在这种情况下,您可以假设 0 为假,1 为真。
[ColumnName] INT NULL DEFAULT 0