创建是/否即布尔字段时,从访问数据库或一般转换的最佳实践是什么?
当前回答
在任意版本的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字段。
在SQL中,您使用0和1来设置位字段(就像Access中的yes/no字段一样)。在Management Studio中,它显示为false/true值(至少在最近的版本中)。
当通过ASP访问数据库时。NET,它会将该字段公开为布尔值。
BIT数据类型通常用于存储布尔值(0表示false, 1表示true)。
您可以使用BIT类型,可以有1或0,如果允许使用NULL,也可以使用NULL。
BIT类型转换:
除0到1以外的任何整数值。 除“0”到1之外的任何整型字符串值。 0到0。
然后,可以创建一个BIT类型的表,如下图所示:
CREATE TABLE doctor (
id INT IDENTITY,
name NVARCHAR(50),
on_call BIT, -- Here
PRIMARY KEY(id)
)
GO
然后插入行,如下图所示:
INSERT INTO doctor
VALUES ("John", 1), ("Tom", 0), ("Lisa", "-23"), ("Kai", "0"), ("Bob", NULL)
GO
1> SELECT * FROM doctor
2> GO
id name on_call
-- ---- -------
1 John 1 <- 1
2 Tom 0 <- 0
3 Lisa 1 <- "-23"
4 Kai 0 <- "0"
5 Bob NULL <- NULL
Bit将是最简单的,也占用最少的空间。与“Y/N”相比,它不是很啰嗦,但我对它很满意。
可以使用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)
推荐文章
- MySql: Tinyint (2) vs Tinyint(1) -有什么不同?
- 在Android SQLite中处理日期的最佳方法
- 在SQL Server中查找重复的行
- 执行带有Output参数的存储过程?
- 我如何在T-SQL用逗号格式化一个数字?
- LEFT OUTER JOIN如何返回比左表中存在的记录更多的记录?
- 如何用SQL语句计算百分比
- SQL Server动态PIVOT查询?
- 如何等待2秒?
- SQL Server: CROSS JOIN和FULL OUTER JOIN的区别是什么?
- varchar和nvarchar SQL Server数据类型之间的主要性能差异是什么?
- 使用{merge: true}设置的Firestore与更新之间的差异
- 向现有表添加主键
- mysql_connect():[2002]没有这样的文件或目录(试图通过unix:///tmp/mysql.sock连接)在
- 使用电子邮件地址为主键?