在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查询中执行此操作?
答案 0 :(得分:4)
如果您想设置为true
,请尝试
Update table set columnName = 1 where ...
如果您想设置为false
,请尝试
Update table set columnName = 0 where ...
答案 1 :(得分:2)
除了使用值0和1之外,T-SQL documentation for bit表示
字符串值TRUE和FALSE可以转换为位值:TRUE转换为1,FALSE转换为0.
所以这些工作也是如此:
UPDATE tablename SET bitcolumn = 'TRUE' WHERE ...
UPDATE tablename SET othercolumn = 'something' WHERE bitcolumn = 'TRUE'
答案 2 :(得分:0)
我需要做类似的事情,我希望根据另一个表中是否存在记录来更新字段,所以我使用上面的代码(谢谢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,它确实帮助我学习。