创建是/否即布尔字段时,从访问数据库或一般转换的最佳实践是什么?
当前回答
您可以使用数据类型位
插入的大于0的值将存储为'1'
插入的小于0的值将存储为'1'
插入为“0”的值将存储为“0”
这适用于MS SQL Server 2012 Express
其他回答
您可以使用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字段。
在SQL中,您使用0和1来设置位字段(就像Access中的yes/no字段一样)。在Management Studio中,它显示为false/true值(至少在最近的版本中)。
当通过ASP访问数据库时。NET,它会将该字段公开为布尔值。
创建表时的示例用法:
[ColumnName] BIT NULL DEFAULT 0
钻头是最合适的选择。另外,我曾经使用int来实现这个目的。true为1,false为0。
您可以使用位列类型。
推荐文章
- 在SQL中更新多个列
- 如何删除表中特定列的第一个字符?
- 为什么我应该使用基于文档的数据库而不是关系数据库?
- 哪个更快/最好?SELECT *或SELECT columnn1, colum2, column3等
- 将值从同一表中的一列复制到另一列
- 什么是数据库池?
- 等价的限制和偏移SQL Server?
- 关于数据库,每个开发人员应该知道些什么?
- 如何从SQL Server中的字符串中剥离所有非字母字符?
- 为什么我不能在DELETE语句中使用别名?
- "where 1=1"语句
- PHP -获取bool值,当为false时返回false
- 多语句表值函数vs内联表值函数
- 是使用各有一个模式的多个数据库更好,还是使用一个数据库有多个模式更好?
- 如何从Oracle的表中获取列名?