SQL:在此上下文中不允许名称为false
在执行以下SQL查询时SQL:在此上下文中不允许名称为false,sql,sql-server-2008,Sql,Sql Server 2008,在执行以下SQL查询时 alter table tablename add columnname boolean not null default false; 我收到以下错误消息: 在此上下文中不允许使用名称“false”。有效表达式是常量、常量表达式和(在某些上下文中)变量。不允许使用列名。 我该如何解决这个问题?建议?没有boolean数据类型。使用位数据类型 位的false值为0 alter table tablename add columnname bit not null def
alter table tablename add columnname boolean not null default false;
我收到以下错误消息:
在此上下文中不允许使用名称“false”。有效表达式是常量、常量表达式和(在某些上下文中)变量。不允许使用列名。
我该如何解决这个问题?建议?没有
boolean
数据类型。使用位
数据类型
位的false
值为0
alter table tablename add columnname bit not null default 0
列类型应为位
字段
在SQL中,使用0
和1
设置位
字段。这些值在SQL Server Management Studio中显示为false
或true
,对应于0
和1
alter table tablename add columnname bit not null default 0;
为什么人们对这个问题投反对票?这是一个常见的误解,也是一个非常恰当的问题。出现此错误的另一个原因是,当您尝试在列中插入一个不包含单引号的值时,也会出现此错误。现在才意识到这一点,并想把它放在这里供大家使用。Bit
实际上是一种小型整数类型。真理不是一个概念,即使价值有时是这样显示的。如果是,您可以编写If Cast(1位)print'S'truth
。向其他读者澄清SQL Server确实有数据类型,但BIT
不是。您可以创建实例,但不能保留它们。您编写了位的false
值为0
。其他数据类型的false
值是多少,例如tinyint
?未知的值是多少?42
有多真实?@user92546:你错了。没有布尔数据类型。仅仅因为有布尔的概念并不意味着它就有数据类型。对不起,你是!=0
。请按照我在上一篇评论()中提供的链接,并将其文档错误通知Microsoft。@user92546:好的,请澄清,没有布尔值可以用作表中的类型。你不再吹毛求疵了吗?