TSQL“Array” - 根据列表更新记录并记住上次使用的值

时间:2014-02-26 23:13:42

标签: sql-server arrays tsql

标题可能有点令人困惑.....但我正在寻找一种方法来运行SQL Server作业来更新插入表中的记录。

我有一份将被分配这些记录的人员列表。我们将每天导入记录,我想知道如何让TSQL循环遍历这些记录并更新它们想要记住最后一个被分配的人,这样每个人都有类似的记录数量

基本上,我有一份人员名单

John

Steve

Jerry

Nick

因此,如果导入了10条记录,每个人都会获得2条记录,但John和Steve除外。在下一次导入时,我希望更新记住John和Steve收到3条记录并从Jerry开始并用他作为起始位置....等等......

希望这很清楚

1 个答案:

答案 0 :(得分:0)

此处没有太多信息......但假设你的作业有一个JOB_ID并且这个JOB_ID是一个运行序列,那么你可以用你拥有的人数简单地模拟(模数)JOB_ID。例如,在您的情况下,您有四个人

约翰,史蒂夫,杰瑞,尼克。 John将与0相关联,Steve将与1,Jerry 2和Nick 3相关联。

所以,让我们说Job_ID 1进来。

1 modulo 4 = 1 (Steve)

类似地

2 modulo 4 = 2 (Jerry)
3 modulo 4 = 3 (Nick)
4 modulo 4 = 0 (John)
5 modulo 4 = 1 (Steve)
6 modulo 4 = 2 (Jerry)
....
....
....
....
Job_ID 359
359 modulo 4 = 3 (Nick)

等等......这样你就不必记住最后一个被指派的人或类似的东西。只要Job_ID完全按顺序排列,它们就会被正确地分配给合适的人。

在T-SQL模运算符中有以下内容 -

http://technet.microsoft.com/en-us/library/ms190279(v=sql.105).aspx