UPDATE Tnm_Lookup SET
P_C = 'C'
where Tnm_Lookup_ID in (select top (355) Tnm_Lookup_ID from Tnm_Lookup where
Tnm_Lookup_ID = Tnm_Lookup_ID order by Tnm_Lookup_ID DESC);
我不明白为什么这句话之前有效,现在它将不再更新我的表格。任何人都可以告诉我为什么这不起作用?
答案 0 :(得分:2)
这是否会返回任何记录?
select top (355) Tnm_Lookup_ID
from Tnm_Lookup
where P_C = NULL
order by Tnm_Lookup_ID DESC
答案 1 :(得分:0)
从您的第一个帖子开始,看起来您只想更新P_C
,如果它是null
。在这种情况下,使用P_C is null
。 null值永远不等于(=)包括另一个null的任何东西。您必须使用is null
。
UPDATE Tnm_Lookup
SET P_C = 'C'
where Tnm_Lookup_ID in (
select top (355) Tnm_Lookup_ID
from Tnm_Lookup
where P_C is NULL
order by Tnm_Lookup_ID DESC)
如果您只按降序排列整个表的前355行中的Tnm_Lookup_ID
,那么如果Tnm_Lookup
有很多行,那么您就可以很可能会错过你想要的那个。 where P_C is null
有帮助,因为您只返回P_C
尚未更新的行。
但是,将搜索限制为固定数字仍然存在风险,除非您确定永远不会有超过355行等待更新。
为什么355?如果只是为了效率,那么如果它会错过搜索,那么它就不值得加速搜索。
这是你想要的吗?
UPDATE Tnm_Lookup SET P_C = 'C'
where P_C is NULL
如果我猜错了,那么您应该编辑问题来解释top (355)
。