如何在SQL Server中创建一个是/否布尔字段?

414

在转换来自Access数据库或其他情况下创建yes/no,即Boolean字段的最佳实践是什么?

13个回答

2
在任何版本的SQL Server Management Studio中,使用BIT作为数据类型,这将为您提供TrueFalse值选项。如果您只想使用10,则可以使用以下方法:
CREATE TABLE SampleBit(
    bar int NOT NULL CONSTRAINT CK_foo_bar CHECK (bar IN (-1, 0, 1))
)

但我强烈建议选择BIT作为最佳选项。希望这能对某些人有所帮助。


1

您可以使用具有10BIT类型,或者如果允许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

0

以下是数据库列表,其中列出了布尔类型使用的数据类型

-> Oracle -> Number(1)

-> SQL Server -> BIT

-> MySql -> BIT或TINYINT

->postgreSQL -> boolean

希望这对您有所帮助,谢谢。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接