好贷网好贷款

sql语句执行超时,急在线等。。。 20whj0210]

发布时间:2016-12-3 23:49:08 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"sql语句执行超时,急在线等。。。 20whj0210]",主要涉及到sql语句执行超时,急在线等。。。 20whj0210]方面的内容,对于sql语句执行超时,急在线等。。。 20whj0210]感兴趣的同学可以参考一下。

我执行以下语句总是超时:(65万条数据) update shop_snsn set kucun=bt.kucun from bt join shop_snsn on bt.isbn = shop_snsn.cjname and shop_snsn.shopclass=2,请问能不能写个游标或者是存储过程能同样达到这条语句的功能 

SET ROWCOUNT 5000 update shop_snsn set kucun=bt.kucun from bt join shop_snsn on bt.isbn = shop_snsn.cjname and shop_snsn.shopclass=2 AND kucun<>bt.kucun WHILE  @@ROWCOUNT>0       update shop_snsn set kucun=bt.kucun from bt join shop_snsn on bt.isbn = shop_snsn.cjname and   shop_snsn.shopclass=2 AND kucun<>bt.kucun          SET ROWCOUNT 0

引用 1 楼 Garnett_KG 的回复:SQL code SET ROWCOUNT 5000 update shop_snsn set kucun=bt.kucun from bt join shop_snsn on bt.isbn = shop_snsn.cjname and shop_snsn.shopclass=2 AND kucun<>bt.kucun WHILE  @@ROWCOUNT>0       update shop_snsn set kucun=bt.kucun from bt join shop_snsn on bt.isbn = shop_snsn.cjname and   shop_snsn.shopclass=2 AND kucun<>bt.kucun          SET ROWCOUNT 0 这个是分批哈

引用 1 楼 Garnett_KG 的回复:SQL code SET ROWCOUNT 5000 update shop_snsn set kucun=bt.kucun from bt join shop_snsn on bt.isbn = shop_snsn.cjname and shop_snsn.shopclass=2 AND kucun<>bt.kucun WHILE  @@ROWCOUNT>0       update shop_snsn set kucun=bt.kucun from bt join shop_snsn on bt.isbn = shop_snsn.cjname and   shop_snsn.shopclass=2 AND kucun<>bt.kucun          SET ROWCOUNT 0 WHILE  @@ROWCOUNT>0和SET ROWCOUNT 0代表什么意思啊?

2楼的兄弟~你这个是分批的处理数据库哦~对吗?一次处理5000,WHILE  @@ROWCOUNT>0和SET ROWCOUNT 0代表什么意思啊?或者说你的思路是什么啊?谢谢~

分批不行哦~我试过咯~

不行啊? 你是在哪里执行的呢? 将连接的属性查询等待时间(CommandTimeOut)设置成0

如果在查询分析器执行,可以先select 出来插入到临时表,然后while,一条条更新也行.

while exists(select 1 from bt join shop_snsn on bt.isbn = shop_snsn.cjname and shop_snsn.shopclass=2 and shop_snsn.kucun<>bt.kucun) begin  SET ROWCOUNT 5000; update shop_snsn  set kucun=bt.kucun  from  bt  join  shop_snsn on bt.isbn = shop_snsn.cjname and shop_snsn.shopclass=2 and shop_snsn.kucun<>bt.kucun --加上這個條件 SET ROWCOUNT 0; end

引用 5 楼 whj0210 的回复:分批不行哦~我试过咯~ 把影響記錄改小一點 SET ROWCOUNT 200; while exists(select 1 from bt join shop_snsn on bt.isbn = shop_snsn.cjname and shop_snsn.shopclass=2 and shop_snsn.kucun<>bt.kucun) begin  update shop_snsn  set kucun=bt.kucun  from  bt  join  shop_snsn on bt.isbn = shop_snsn.cjname and shop_snsn.shopclass=2 and shop_snsn.kucun<>bt.kucun --加上這個條件 end SET ROWCOUNT 0;

SET ROWCOUNT 0; 是取消  SET ROWCOUNT 200;  这个是设定200

我是在企业管理器里运行的哦~查询超时就是0

不行哦~查询分析器根本就半天不动~

引用 8 楼 roy_88 的回复:SQL codewhile exists(select 1 from bt join shop_snsn on bt.isbn = shop_snsn.cjname and shop_snsn.shopclass=2 and shop_snsn.kucun<>bt.kucun) begin      SET ROWCOUNT 5000;     update shop_snsn      set kucun=bt.kucun      from          bt      join          shop_snsn on bt.isbn = shop_snsn.cjname and shop_snsn.shopclass=2 and shop_snsn.kucun<>bt.kucun --加上這個條件     SET ROWCOUNT 0; end 不行哦~还是超时~

上一篇:求译者!!! 0lelenini]
下一篇:感谢 悬崖边的舞者 帮我远程 文件分组 放分感谢 100DataKeyNames]

相关文章

相关评论