受约束的连续更新

时间:2014-08-15 08:33:17

标签: sql sql-server tsql sql-server-2012

请假设我在MS Sqlserver中构建了一个查询,它具有以下结构:

WITH issues_a AS
(
  SELECT a_prop
  FROM ds_X x
)
, issues_b AS
(
  SELECT key
       , z.is_flagged as is_flagged
       , some_prop
  FROM ds_Z z
    JOIN issues_a i_a
      ON z.a_diff = i_a.a_prop
)
-- {{ run }}
UPDATE samples
  SET error =
    CASE
      WHEN i_b.some_prop IS NULL THEN '#1 ...'
      WHEN UPPER(i_b.is_flagged) != 'Y' THEN '#2 ...'
    END
FROM samples s
  left join issues_b i_b ON s.key = i_b.key;

现在我希望通过将查询的部分内容放在BEGIN TRANSACTIONCOMMIT中来增强整个事项,以连续的方式更新另一个表,但是不要理解它的方式。尝试用事务括号括起整个表达式,但这并没有让我更进一步。

有没有其他方法可以实现上述任务 - 即使没有以事务方式连接连续更新,但它会更好吗?

再次缩写任务:WITH <...>(...), <...>(...) UPDATE <... Using data from latter WITH> UPDATE <... using data from latter WITH>

希望你不介意我的语法不好......

0 个答案:

没有答案