-1

在 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 查询中执行此操作?

4

3 回答 3

4

如果你想设置为truetry

Update table set columnName = 1 where ...

如果你想设置为falsetry

Update table set columnName = 0 where ...
于 2015-04-08T11:08:10.080 回答
2

除了使用值 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'
于 2017-03-03T13:59:47.960 回答
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,它确实帮助我学习。

于 2017-02-16T15:08:20.877 回答