♣
关于存储过程的返回值
现在想实现一个这样的功能
查询一条记录是否存在,
存在的话,返回此记录
不存在的话,建立它,然后返回记录
create procedure c_insert_sellticket
@saleproject_id int
as
select * from sale_sellticket where sale_project_id=@saleproject_id
if @@rowcount=0
begin
insert into sale_sellticket(sale_project_id)values(@saleproject_id)
select * from sale_sellticket where sale_project_id=@saleproject_id
end
go
上面的代码有个问题,当记录不存在时,第一条查询语句的null结果也会返回给程序,程序接收不到第二条查询语句的值。
当记录存在时,由于第二条语句不会执行,所以程序是没问题的。
· 网友精彩回答:
建立测试环境:
create table table1 (id int,name1 varchar(8),
company varchar(8),date1 datetime)
create proc p1
@id int,
@name1 varchar(8)=null,
@company varchar(8)=null,
@date1 datetime=null
as
if exists(select id from table1 where id=@id )
begin
select * from table1 where id=@id
end
else
begin
insert into table1 values(@id,@name1,@company,@date1)
select * from table1 where @id=id
end
exec p1 3
xiaonvjing(飞扬) ,
这句select * from sale_sellticket where sale_project_id=@saleproject_id
如果不存在会返回一个null串回来吗,如果只是简单的select语句,没有加上任何计算的函数,例如max(),sum(),avg()应该不会返回一个null集合吧?
假设会的话,加入没有,返回一个null,那么if exists( select sale_project_id from sale_sellticket
where sale_project_id=@saleproject_id)
这句也是为true哦,那样你的程式也是有问题,不过我觉得应该不会有null集合产生
大家说是吧???
create procedure c_insert_sellticket
@saleproject_id int
as
set nocount on
if not exists(select * from sale_sellticket where sale_project_id=@saleproject_id)
begin
insert into sale_sellticket(sale_project_id)values(@saleproject_id)
select * from sale_sellticket where sale_project_id=@saleproject_id
end
select * from sale_sellticket where sale_project_id=@saleproject_id
set nocount off
go
- 更多问题:
- · 这样随机显示图片如何实现
- · const和引用
- · 一个奇怪的问题!!大家都来看看。什么原因呢、
- · 谁来书写“你可能不知道的大陆”(摘自《早报网》)
- · 日本处于“对华心理调适期”
- · 清明节、端午节、中秋节、重阳节要被定为法定节假日?
- · 你们在那吵啊吵的吵什么,真是浪费自己的感情
- · asp.net中使用框架的时候叶面显示一片空白,一点内容也没有,刚刚接触这方面技术请大家指点.
- · 求最大子段和的分治算法
- · 卢武铉告诉布什:“中国是在历史上侵略韩国多达数百次的国家,我们岂能忘记如此刻骨般痛苦的往事呢?”
- · 歌词“给你我所有”的上一句是什么?
- · 达赖喇嘛表示愿意有条件放弃“达赖”的头衔
- · 传巨浪二型导弹成功发射 具二次核打击能力
- · 请问各位,这个函数错在哪里?编译通过,运行错误。
- · 亚太板块变得越发脆弱 日本将遭受灭顶之灾
- · 请推荐一下关于tomcat的资源站点(中文)。
- · ActiveX技术文档
- · 索引与整理 | 索引
- · TreeView技术文档
- · 维护与测试
- · 类 数据类型 | 类
- · Response应用相关
- · ntfs文件
- · 入侵xp
- · 改mac
- · windows 批处理
- · dns缓存
- · pdf软件
- · pdf工具
- · borland 官网
- · 后门程序
- · 系统快捷键
- · 什么是黑客,有什么用途??
- · 网吧黑客常用手法
- · 中美黑客大战
- · 请问系统恢复软件哪款效果好?
- · 系统故障恢复控制台
- · 如何恢复xp系统管理员的管理权限
- · 一键ghost恢复系统
- · 系统备份恢复软件
- · 火狐浏览器

