| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 549 人关注过本帖
标题:存储过程不支持字符相吗??那条件怎么区别呀?晕
只看楼主 加入收藏
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
快速回复:存储过程不支持字符相吗??那条件怎么区别呀?晕
数据加载中...
 
   



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

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