å¦æè¿åä¸æ²¡ææ°æ®æè æ°æ®å¯å¼ä¹ä¸ç¨çè¯ï¼å¯ç¨row_numberæ¥è§£å³ï¼ä½åææ¯éè¦æä¸å为主é®
å¦student表ä¸ï¼å ¶ä¸å§å为主é®ï¼
å§å å¹´é¾ å¾ ç¨å
å¼ ä¸ 20
æå 19
çäº 19
æ§è¡è¯å¥ï¼
update student set a.å¾ ç¨å=b.rn from student a inner (select å§å,row_number() over (order by å¹´é¾ desc) rn from student) b on a.å§å=b.å§åç»æ为ï¼
å§å å¹´é¾ å¾ ç¨å
å¼ ä¸ 20 1
æå 19 2
çäº 19 3
我试了,数据实在是太多了,会出现服务器超时。。“超时时间已到。在操作完成之前超时时间已过或服务器未响应"。就是这错。。我的服务器超时时间是0
追答有多少数据啊?如果自己手动设置的话很麻烦,手动操作设计器的步骤~
追问几百万吧。。。。你还是告诉我怎么弄吧,要弄不了,我们经理要杀人了
追答几百万还可以,也不算太多,但是如果有大数据类型的话就麻烦了
我告诉你设计器的操作步骤,你慢慢做吧
先用原表生成建表脚本,然后修改要操作的列为自增列(索引可以现在创建也可以填充完数据再创建),然后用set identity_insert 选项将原表数据填充进新表数据
最后将原表删除或改名(建议改名,待数据确认无误后再删除),再将新表表名改为原表表名
不要嫌麻烦,设计器就是这样操作的,而且只能这样操作