在转换来自Access数据库或其他情况下创建yes/no
,即Boolean
字段的最佳实践是什么?
在转换来自Access数据库或其他情况下创建yes/no
,即Boolean
字段的最佳实践是什么?
相当于一个 BIT
字段。
在 SQL
中,您使用0
和1
来设置位字段(就像在Access中的是/否字段一样)。在 Management Studio 中,它显示为 false/true 值(至少在最近版本中)。
通过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。我会在这些答案上添加更多内容。
应该使用bit来表示布尔值。
MSDN文章中的备注。
位可以取1、0或NULL的值。
SQL Server数据库引擎优化存储位列。如果表中有8个或更少的位列,则这些列将被存储为1字节。如果有9至16个位列,则这些列将被存储为2字节,依此类推。
字符串值TRUE和FALSE可以转换为位值:TRUE转换为1,FALSE转换为0。
将其转换为位可将任何非零值提升为1。
NOT NULL
的1和0因为位拥有值1、0和NULL。请参阅此真值表。因此,请相应地规划值。允许位数据类型的NULL值可能会增加混淆。
[field1] [bit] NULL
与 [field1] [bit]
相等? - spencer741您可以使用数据类型bit
插入大于0的值将被存储为'1'
插入小于0的值将被存储为'1'
插入值为'0'的将被存储为'0'
这适用于MS SQL Server 2012 Express
0
表示假,任何非0
数字表示真。过去,将-1作为真的默认值也很常见,因为在有符号二进制中,每个位都设置为1。现在,将1作为真的默认值非常普遍(只设置了最低有效位)。 - CJ Dennis创建表时的示例用法:
[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)
是最简单的并且占用空间最少的。与“Y/N”相比不够冗长,但我认为这样也可以。
bit
是最合适的选项。否则我曾经用过 int
来实现这个目的。使用 1
表示 true
,使用 0
表示 false
。