基于 SQL Server "bit"列选择行



在SQL Server表中,我有一个BIT列,并且基于它的值,我需要用一些值更新该表的其他列。我试过这个

UPDATE tablename SET Completed = GETDATE() WHERE CheckTaskAvailable = TRUE

但是我得到错误

Msg 207, Level 16, State 1, Server SQLDEV01, Line 1
Invalid column name 'TRUE'.

如何在T-SQL查询中做到这一点?

如果您想设置为true,请尝试

Update table set columnName = 1 where ...

如果您想设置为false,请尝试

Update table set columnName = 0 where ...

除了使用值0和1之外,bit的T-SQL文档还表示

字符串值TRUE和FALSE可以转换为位值:TRUE转换为1,FALSE转换为0。

所以这些也起作用:

UPDATE tablename SET bitcolumn = 'TRUE' WHERE ...
UPDATE tablename SET othercolumn = 'something' WHERE bitcolumn = 'TRUE'

我需要做一些类似的事情,因为我想根据另一个表中是否存在记录来更新字段,所以我使用了上面的代码(谢谢RezaRahmati)并添加了:

Update table set columnName = 1 where ID IN (SELECT ID FROM other table)

或错误

Update table set columnName = 0 where ID NOT IN (SELECT ID FROM other table)

我真的很喜欢Stack Overflow,它真的帮助我学习。

相关内容

  • 没有找到相关文章

最新更新