我一直在开发一个用作计划作业的查询。简而言之,我要对一个表进行一些具体的计算,并根据计算结果更新一些列(如STATE)。
一个样本(就像目前的样子)可以展示如下:
UPDATE TEST_TABLE SET STATE = 1
WHERE {some condition}
UPDATE TEST_TABLE SET STATE = 2
WHERE {some condition}
UPDATE TEST_TABLE SET STATE = 3, SOME_OTHER_COLUMN={value}
WHERE {some condition}
WHILE(some condition)
BEGIN
UPDATE TEST_TABLE SET STATE = 4, SOME_OTHER_COLUMN={value}
WHERE {some condition}
END
我在上面试图演示的是查询的流程。如上所示,我多次更新单个表,主要是根据不同的条件设置具有不同值的单个状态列。
我还必须使用 while 循环,而不是游标(因为性能不佳),因为需要根据这些条件用小组更新此表中的数据。
假设所有查询都包含在事务和 try-catch 块中。
最后,这是我的问题:由于这将是一个计划在晚上执行的工作,所以性能对我来说不是首要任务。但是,我无法弄清楚如何使用更清洁、更高效(性能方面)的查询来进行相同的操作。我需要一些建议。请注意,{some condition} 区域包含具有 EXISTS 功能的子查询。所以原始代码看起来比这要混乱得多。提前致谢。——奥赞