sql 记录一次灾难 游标问题
2024-09-01 18:15:49
起因:游标执行存储过程 下载begin 外面了.. ,造成一直触发存储过程
收获:定义变量统一在游标外部使用, 书写内容在begin 内部书写
alter PROCEDURE USP_dgd_wzh_INPUT_SAVE
@inputrowidhd VARCHAR(10),
@doccode varchar(30)
as
DECLARE @rowid varchar(40)
begin --游标更改数据
--申明一个游标
DECLARE @po_no varchar(50),@modelcode varchar(50),@size_state varchar(50),@rec_date datetime,@plan_date datetime, @exdate datetime,@lot_date datetime,@to_country varchar(50) --循环变量 DECLARE MyCursor CURSOR FOR SELECT
po_no,modelcode,size_state,rec_date,plan_date,exdate,lot_date,to_country
FROM po_order_input where inputrowid = @inputrowidhd and size_state !='码制'
--循环一个游标 --打开一个游标
OPEN MyCursor FETCH NEXT FROM MyCursor INTO @po_no,@modelcode,@size_state,@rec_date,@plan_date,@exdate,@lot_date ,@to_country
WHILE @@FETCH_STATUS =0 BEGIN
exec getxxxx @rowid output
INSERT INTO wzh_ddgl_item(Doccode,rowid,ordercode,modelcode,size_state,Orderdate,Originaldate,postdate,lot_date,Portmsg)
values (@doccode,@rowid, @po_no,@modelcode,@size_state,@rec_date,@plan_date,@exdate,@lot_date ,@to_country) FETCH NEXT FROM MyCursor INTO @po_no,@modelcode,@size_state,@rec_date,@plan_date,@exdate,@lot_date ,@to_country
END --关闭游标
CLOSE MyCursor
--释放资源
DEALLOCATE MyCursor end
太久不用忘记游标的写法了
DECLARE cur CURSOR FOR SELECT DISTINCT mtl_no
FROM pc_mtl_staytest_item
WHERE doccode = @doccode
OPEN cur
FETCH NEXT FROM cur INTO @mtl_no
WHILE(@@FETCH_STATUS = )
BEGIN
SET @cnt = ISNULL(@cnt,) + -- 循环代码 IF @cnt >=
BEGIN
BREAK
END
FETCH NEXT FROM cur INTO @mtl_no
END
CLOSE cur
DEALLOCATE cur
如果确实死循环了,需要删掉死锁进程,查出死锁的进出
SELECT request_session_id spid, OBJECT_NAME(resource_associated_entity_id) tableName
FROM sys.dm_tran_locks WITH(NOLOCK)
WHERE resource_type='OBJECT'
然后 KILL + 进程号
最新文章
- 理解Cookie和Session机制
- 【MySQL】通过select语句把一列数据拼接成一条字符串
- struts2 权限拦截器 拦截没有登陆的请求
- Best Time to Buy and Sell Stock III 解答
- Android studio gradle配置!!!【转】
- js 调用 android 安卓 代码
- Apache Commons IO入门教程(转)
- 在Windows上安装Python
- --@angularJS--指令之单个点击展开demo
- 语音识别完成诗句的查询功能,iOS AVSpeechSynthesis语音输出结果的诗歌APP
- 深入理解SpringBoot之装配条件
- 前两天做项目遇到了sqlserver最大连接数 Max Pool Size 的问题
- python3命令行ImportError: No module named 'xxxx'的问题
- 如何将数据库引擎配置为侦听多个 TCP 端口
- Elasticsearch 系列2 --- 安装elasticsearch-head管理工具
- 51Nod:1086背包问题 V2
- C#中的三种timer
- vue加载Element ui地址省市区插件-- element-china-area-data
- Hibernate关系映射(三) 多对一和一对多
- 【转】Cocos2d-x 3.1.1 学习日志6--30分钟了解C++11新特性