标题:存储过程不支持字符相吗??那条件怎么区别呀?晕
只看楼主
yzwt2004
Rank: 1
等 级:新手上路
帖 子:472
专家分:0
注 册:2006-1-18
 问题点数:0 回复次数:1 
存储过程不支持字符相吗??那条件怎么区别呀?晕
CREATE proc stfd
@zid varchar(500),
@za int,
@zb int,
@zc int
as
declare @strS varchar(5000)
begin
set @strS='update info set za='+cast(@za as varchar)
begin
if @zb != ''
set @strS=@strS+', zb= '+cast(@zb as varchar)
end
begin
if @zc != ''
set @strS=@strS+', zc= '+cast(@zc as varchar)
end
set @strS=@strS+' where id in ('+@zid+')'
end
exec (@strS)
go


以上只有za字段能改变,zb,zc里的值怎么又不变,晕,但是,下边这种也能变:
CREATE proc stfd
@zid varchar(500),
@za int,
@zb int,
@zc int
as
declare @strS varchar(5000)
begin
set @strS='update info set za='+cast(@za as varchar)
begin
if @zb != '' 去掉这行,那这时zb也能改变了
set @strS=@strS+', zb= '+cast(@zb as varchar)
end
begin
if @zc != ''
set @strS=@strS+', zc= '+cast(@zc as varchar)
end
set @strS=@strS+' where id in ('+@zid+')'
end
exec (@strS)
go

我用个if 来区别这没有错呀,晕
搜索更多相关主题的帖子: 字符 条件 
2007-04-23 16:03
xiyou419
Rank: 1
等 级:新手上路
威 望:2
帖 子:104
专家分:0
注 册:2007-3-18
得分:0 
晕死了,
你没有给存储过程传递参数,还想要ab,ac改变啊.
默认的@za,@zb,@zc,@zid都是空的,你看看你的if条件是什么~~~~~~~~

道德往往可以弥补智慧的缺陷;但智慧永远不能填补道德的空白.
2007-04-23 22:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-134272-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.266172 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved