这个存储过程有问题吗?为什么print打印不出来值

w785592116 2011-11-21 09:35:14
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
ALTER PROCEDURE [dbo].[updateCjxm] AS
BEGIN

declare @name varchar(200)
declare @bzz varchar(200)
declare @jcz varchar(100)
declare @iguid varchar (200)
declare @str varchar(5000)

DECLARE cjxmjg cursor for select [name],bzz,jcz,iguid from 抽检项目录入 where b271='不合格'
OPEN cjxmjg
Fetch next from cjxmjg into @name,@bzz,@jcz,@iguid

WHILE @@FETCH_STATUS=0
begin
set @str=@name+':'+@bzz+'/'+@jcz;
print @str
begin
update 抽查结果信息表录入 set b28=@str where iguid=@iguid
end
Fetch next from cjxmjg into @name,@bzz,@jcz,@iguid
end

CLOSE cjxmjg
DEALLOCATE cjxmjg
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

...全文
188 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
w785592116 2012-02-17
  • 打赏
  • 举报
回复
131
勿勿 2011-11-22
  • 打赏
  • 举报
回复
条件不满足,循环没开始
叶子 2011-11-22
  • 打赏
  • 举报
回复

ALTER PROCEDURE [dbo].[updateCjxm]
AS
BEGIN

DECLARE @name VARCHAR(200)
DECLARE @bzz VARCHAR(200)
DECLARE @jcz VARCHAR(100)
DECLARE @iguid VARCHAR(200)
DECLARE @str VARCHAR(5000)

DECLARE cjxmjg CURSOR FOR
--这个里面有数据?
SELECT [name],bzz,jcz,iguid FROM 抽检项目录入 WHERE b271='不合格'
OPEN cjxmjg
FETCH NEXT FROM cjxmjg INTO @name,@bzz,@jcz,@iguid

WHILE @@FETCH_STATUS = 0
BEGIN
SET @str = @name + ':' + @bzz + '/' + @jcz ;
PRINT @str
BEGIN
UPDATE 抽查结果信息表录入
SET b28 = @str
WHERE iguid = @iguid
END
FETCH NEXT FROM cjxmjg INTO @name,@bzz,@jcz,@iguid
END

CLOSE cjxmjg
DEALLOCATE cjxmjg
END
中国风 2011-11-21
  • 打赏
  • 举报
回复
select @name+':'+@bzz+'/'+@jcz --把print改为 select 看看有没有值
-晴天 2011-11-21
  • 打赏
  • 举报
回复
你的游标查询语句没有找到满足条件的记录,因此没有进行 WHILE @@FETCH_STATUS=0 引导的循环.
快溜 2011-11-21
  • 打赏
  • 举报
回复
你的存储过程有返回值要打印吗?。。。
xiaogang3438792 2011-11-21
  • 打赏
  • 举报
回复
在 set @str=@name+':'+@bzz+'/'+@jcz; 位置打个断点 debug 下 看看 @str 有值没 可能你select 的字段数据类型与你定义的不一致
w785592116 2011-11-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 roy_88 的回复:]
你的語句沒發現問題

select [name],bzz,jcz,iguid from 抽检项目录入 where b271='不合格'--查看一下結果是否有 null
[/Quote]

查过了 没有null 。。。
中国风 2011-11-21
  • 打赏
  • 举报
回复
你的語句沒發現問題

select [name],bzz,jcz,iguid from 抽检项目录入 where b271='不合格'--查看一下結果是否有 null

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧