在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,它真的帮助我学习。