创建是/否即布尔字段时,从访问数据库或一般转换的最佳实践是什么?
当前回答
可以使用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)
其他回答
钻头是最合适的选择。另外,我曾经使用int来实现这个目的。true为1,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作为最佳选择。希望它能帮助到别人。
Bit将是最简单的,也占用最少的空间。与“Y/N”相比,它不是很啰嗦,但我对它很满意。
已经有答案说使用比特。我会补充更多的答案。
您应该使用比特来表示布尔值。
来自MSDN文章的备注。
Bit可以取值为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值可能会增加混淆。
参考
可以使用BIT字段。
要向现有表中添加BIT列,SQL命令如下所示:
添加yes_no BIT
如果你想创建一个新表,你可以这样做:create table table_name (yes_no BIT)。
推荐文章
- SQL Server数据库备份恢复到低版本
- SQL Server:过滤sp_who2的输出
- 在SQL Server上使用varchar(MAX) vs TEXT
- Visual Studio: ContextSwitchDeadlock
- 模式、表和数据库之间的区别是什么?
- Sql Server字符串到日期的转换
- Java中的&和&&有什么区别?
- 如何将SQL Azure数据库复制到本地开发服务器?
- SQL Server 2008不能用新创建的用户登录
- 我看到VARCHAR(255)如此频繁地使用(而不是其他长度),有什么好的原因吗?
- 使用pgadmin连接到heroku数据库
- Delete_all vs destroy_all
- 我如何移动一个redis数据库从一个服务器到另一个?
- 如何首次配置postgresql ?
- SQL Server中User和Login的区别