选择基于SQL Server" bit"的行柱

时间:2015-04-08 11:01:38

标签: sql sql-server jdbc mssql-jdbc

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

3 个答案:

答案 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,它确实帮助我学习。