Sql server TSQL";数组";-根据列表更新记录并记住上次使用的值

Sql server TSQL";数组";-根据列表更新记录并记住上次使用的值,sql-server,arrays,tsql,Sql Server,Arrays,Tsql,标题可能有点混乱……但我正在寻找一种方法来运行SQL Server作业,更新插入到表中的记录 我有一份被分配这些记录的人的名单。我们将每天导入记录,我想知道如何让TSQL循环浏览这些记录并更新它们,但想知道如何记住最后一个被分配的人,这样每个人都有相似数量的记录 基本上,我有一份名单 John Steve Jerry Nick 因此,如果有10张唱片被导入,每个人一张都会得到2张唱片,除了约翰和史蒂夫,他们得到3张。在下一次导入中,我希望更新时记住John和Steve收到了3张记录,并从

标题可能有点混乱……但我正在寻找一种方法来运行SQL Server作业,更新插入到表中的记录

我有一份被分配这些记录的人的名单。我们将每天导入记录,我想知道如何让TSQL循环浏览这些记录并更新它们,但想知道如何记住最后一个被分配的人,这样每个人都有相似数量的记录

基本上,我有一份名单

John

Steve

Jerry

Nick
因此,如果有10张唱片被导入,每个人一张都会得到2张唱片,除了约翰和史蒂夫,他们得到3张。在下一次导入中,我希望更新时记住John和Steve收到了3张记录,并从Jerry开始,使用他作为起始位置……等等


希望这足够清楚

这里没有太多信息。。。但是假设您的作业有一个作业ID,并且该作业ID是一个运行序列,那么您可以简单地将作业ID与您拥有的人数进行mod(modulo)。例如,在你的情况下,你有四个人

约翰,史蒂夫,杰瑞,尼克。在这里,约翰将与0关联,史蒂夫将与1关联,杰瑞2和尼克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)
等等。。。这样你就不必记住最后一个指定的人或类似的事情。只要工作ID的顺序合理,他们就会被正确地分配给合适的人

在T-SQL中,模运算符如下所示-