2
令人费解了在这一个几个小时的数字(2-4)的一个循环序列更新数据库表字段,冲刷谷歌并没有什么..如何使用
我试图更新一个SQL Server表的每一行中的数字(2,3,4)的一个循环序列..
update table
set fieldname = (*black magic*)
where otherfieldname = something
那么结果将是
other fields|2|other fields|
other fields|3|other fields|
other fields|4|other fields|
other fields|2|other fields|
other fields|3|other fields|
other fields|4|other fields|
other fields|2|other fields|
other fields|3|other fields|
任何想法表示欢迎!
欢呼声
我现在不在个人电脑上测试,但我想这样做的计划效率会比我的答案低,因为这种排序。另外我不记得NTile是否会添加一个通用的子表达式。 – 2014-09-03 18:37:51
嗯...我不知道他们之间会有很大的区别,他们都是窗口函数,需要在整个结果集中。可能值得测试,但可以用'@@ spid'轻松替换'newid()'并测试性能。在一张大桌子上看到结果会很有趣。 – aas4mis 2014-09-03 18:45:34
是的。用@@ spid替换会避免排序。我认为NTile增加了一个假脱机,尽管这在行号版本中不会出现(尽管在某些情况下该计划可能还有一个用于万圣节保护的假脱机) – 2014-09-03 18:50:38