如何只在SQL Server中更新表列才出现空值?
问题描述:
我有一个超过15列的SQL Server表。如何只在SQL Server中更新表列才出现空值?
我的一个专栏名称是verification_Status
。目前,我有verification_Status
如下下0, 1, 2, null
值:
例如:
Id Name verification_Status
1 John 0
2 Kat 1
3 Williams Null
4 Rosy null
我想让0空的地方出现。我有4k行更新,所以我有点担心。
update masterTable
set verification_Status = 0
where verification_Status == null
我打算使用上面的查询。
我可以知道这是对我的问题的正确查询吗?有人可以指导我吗?
答
使用此:
update masterTable
set verification_Status = 0
where verification_Status is null
<>
是标准的SQL; !=
是其T-SQL等效项。两者都评估值,其中NULL
不是 - NULL是一个占位符,表示没有值。
这就是为什么你只能使用IS NULL
/IS NOT NULL
作为这种情况的判断。
这是各种SQL管理平台的标准
是指这样:Null (SQL)
答
您的查询应该是
update masterTable set verification_Status=0 where verification_Status is null
因为NUll=NUll
总是False
。因此,在verification_status中值为NULL的记录不会更新为零。所以你应该在where子句中使用Verification_status is null
。
答
的值定期更新:任何表插入
update masterTable set verification_Status=0 where verification_Status is null
永久默认值:
ALTER TABLE {TABLENAME}
ADD {COLUMNNAME} {TYPE} {NULL|NOT NULL}
CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE}
[WITH VALUES]
答
你几乎there..just使用'那里verification_Status是null' –
4K记录,即使有15列不应该看到的性能损失,如果它是一次性的或计划的作业。现在,如果你每秒钟都这样做,那么我会考虑将默认列属性设置为0,因此如果为NULL,则它在插入时始终为0。 – ioneyed