Dan*_*ell 1 sql t-sql sql-server null
我有一个表有一个bit类型的活动列,大多数设置为null.活动列作为后想法添加,并错误地设置为允许空值.所以SQL Server不会让我关闭null标志,因为大多数字段已经设置为null.
我尝试将默认值1设置为列,然后删除空标志,但它没有任何.我认为默认值仅适用于插入而不适用于alter.
然后,我尝试使用以下查询显式将所有空值设置为1:
Update cnc.aidPage set active = 1 where active = null
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不会影响任何行.我尝试了这个的衍生物,并发现只有当过滤器尝试null时它才会改变任何东西.以下工作如下:
Update cnc.aidPage set active = 1 where active = 0
Update cnc.aidPage set active = null where active = 1
Run Code Online (Sandbox Code Playgroud)
我很感激,如果有人能告诉我为什么过滤器不起作用,如果我检查null或者是否有更简单的方法来完成关闭允许空值.
NULL不是值 - 它是一个占位符,表示缺少任何值,因此您无法使用数学运算符来检查它.你需要使用:
UPDATE cnc.aidPage
SET active = 1
WHERE active IS NULL
Run Code Online (Sandbox Code Playgroud)