在现有表中添加bool列

时间:2016-09-28 06:11:23

标签: sql sql-server tsql

我正在尝试使用Microsoft SQL Server Management Studio程序将数据列添加到数据库中。

我已经有一个数据库,带有一个表,在该表中我需要添加另一个列..但它一直说它找不到类型bool或boolean。

我的代码:

ALTER TABLE table_name ADD IsOpen boolean GO

有什么想法吗?

方面的问题,任何想法如何改变现有的专栏?我有一个名为“预算”的专栏,但它需要是“预算”。

5 个答案:

答案 0 :(得分:6)

您需要使用bit而不是bool数据类型

ALTER TABLE table_name ADD IsOpen bit
 GO

这里有一些关于数据类型的信息

Data type   Access  SQLServer   Oracle  MySQL   PostgreSQL
boolean     Yes/No   Bit         Byte   N/A      Boolean

回答Qustion 2

重命名SQL Server(Transact-SQL)中现有表中的列的语法是:

<强>语法:

sp_rename 'table_name.old_column_name', 'new_column_name', 'COLUMN';

对于您的专栏:

sp_rename 'table_name.budget', 'Budget', 'COLUMN';

答案 1 :(得分:2)

位(0/1)在SQL

中用作布尔值
ALTER TABLE table_name ADD IsOpen bit GO

答案 2 :(得分:2)

ALTER TABLE [dbo].[TableX] ADD IsOpen bit 

答案 3 :(得分:2)

在mssql中没有名为booleanbool的类型。您必须使用bit,即0或1。

答案 4 :(得分:2)

这里的答案很好,但是有一个最佳实践,我很惊讶没有提及。我建议制作所有新的布尔/位列NOT NULL

通过允许使用空值,您要存储的值可以为true,false或null。在许多布尔情况下,具有第三个值(空)是没有意义的,并且有可能导致无法预料的错误。

这是我建议用于创建位/布尔列的SQL脚本:

ALTER TABLE table_name ADD IsOpen bit NOT NULL DEFAULT 1
GO

这将不允许空值,并且默认记录将具有1 / true值。如果您希望默认情况下数据为false / 0,则只需将此处的1更改为0。