我想要做的事情起初看起来相当简单,但它让我很难过。我有3张桌子。表A包含作业列表。表B包含Actions列表。表C包含这两个表的交集,这意味着它包含一个具有关联Actions的Jobs列表,其中Actions被赋予一个Action Order(Actions执行的顺序)。例如,1个Job可以有8个不同的动作,排名为#1-8,依此类推。
这是我在哪里
Declare @T_variable TABLE(JobClassId int)
INSERT INTO @T_variable
SELECT JobClassId
FROM CFG.JobClass
WHERE jobClassDesc IN ('BD Staff Clerical','DOT Driver','DOT Frontline Supervisor and Asst Facility Managers','DOT Manager Ops','Driver Non DOT','Frontline Hourly','Frontline Supervisors and Asst Facility Managers','Manager Ops','Special Events','Special Events Flagger','Valet')
DECLARE @JobClassId1 int
DECLARE db_cursor CURSOR FOR
SELECT JobClassId
FROM @T_variable
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @JobClassId1
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT * FROM CFG.ActionJobClass WHERE JobClass = @JobClassId1 ORDER BY ActionOrder ASC
FETCH NEXT FROM db_cursor INTO @JobClassId1
END
CLOSE db_cursor
这给了我一个ActionOrder为每个作业订购的动作列表。
我想要做的是在某个点(始终在另一个特定的Action之后)将每个Job的新Action插入到该表中,并且在这样做时,更新ActionOrder以使其顺序工作。例如,我想在另一个指定的Action(例如Action'C')之后为作业插入一个新的Action。作业的当前列表将是:(请注意:左侧的数字是值的值表C中的Action Order列
在动作'C'之后立即将新动作(动作'F')插入现场后,新列表将是:
从我收集的内容中,我需要做以下事情:
我只是不知道如何将其转换为SQL脚本。如果它是C#就很容易!