标题可能有点令人困惑.....但我正在寻找一种方法来运行SQL Server作业来更新插入表中的记录。
我有一份将被分配这些记录的人员列表。我们将每天导入记录,我想知道如何让TSQL循环遍历这些记录并更新它们但想要记住最后一个被分配的人,这样每个人都有类似的记录数量
基本上,我有一份人员名单
John
Steve
Jerry
Nick
因此,如果导入了10条记录,每个人都会获得2条记录,但John和Steve除外。在下一次导入时,我希望更新记住John和Steve收到3条记录并从Jerry开始并用他作为起始位置....等等......
希望这很清楚
答案 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