在 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 查询中执行此操作?
在 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
try
Update table set columnName = 1 where ...
如果你想设置为false
try
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,它确实帮助我学习。