关于SQL中的存储过程问题?

liuwei_IT_love 2009-12-27 02:23:30
请高手帮忙解释一下,这个存储过程的功能是什么,以及每一部分的意思?我是新手,这方面不懂,帮忙解决,谢谢!



CREATE procedure xp_Service_DB
(
@OrgAddr varchar(21),
@OrgAddrType varchar(2),
@DestAddr varchar(21),
@ServiceCode varchar(20),
@Msg varchar(200),
@LinkID varchar(20),
@ReturnMsgID int output,
@ReturnFeeType int output,
@ReturnMsg varchar(200) output,
@Ret int output
)
AS
declare @Cnt int;
begin
set @Cnt = 0
select @Cnt=count(*) from msg where service = @ServiceCode
if @Cnt =0
begin
set @ReturnMsg='对不起,没有您点播的内容!';
end
else
begin
select top 1 @ReturnMsg = msg_neirong FROM msg WHERE service = @ServiceCode ORDER BY msg_id desc
end
exec xp_EasySendOneMessage @DestAddr,@OrgAddr,@ReturnMsg,@ServiceCode,'0',@OrgAddr,@LinkID
end;
GO
...全文
48 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
--小F-- 2009-12-27
[Quote=引用 5 楼 xman_78tom 的回复:]
试着解释一下,尽力而为。
此存储过程首先检查 msg 表中是否存在匹配 @ServiceCode 的消息记录,如果不存在,则返回信息——'对不起,没有您点播的内容!';如果存在,则获取这些消息记录中的第一条记录(msg_id 最大的),并将此消息记录与其他信息一起交由 xp_EasySendOneMessage 过程处理。

[/Quote]

这个解释不错
回复
xman_78tom 2009-12-27
试着解释一下,尽力而为。
此存储过程首先检查 msg 表中是否存在匹配 @ServiceCode 的消息记录,如果不存在,则返回信息——'对不起,没有您点播的内容!';如果存在,则获取这些消息记录中的第一条记录(msg_id 最大的),并将此消息记录与其他信息一起交由 xp_EasySendOneMessage 过程处理。
回复
ACMAIN_CHM 2009-12-27
[Quote]我这方面可以说是一窍不通,所以,才请各位帮忙解释下,谢谢[/Quote]那就是连 CREATE procedure / declare @Cnt int; 这种语法上的问题也需要解释了?
回复
SQL77 2009-12-27
set @ReturnMsg='对不起,没有您点播的内容!';

看样子应该是一个点播的,

解释?

声明了一个存储过程,以及参数,

然后声明一个变量,根据条件查出赋值给变量 ,再用判断,最后执行另一条存储过程


?
回复
liuwei_IT_love 2009-12-27
我这方面可以说是一窍不通,所以,才请各位帮忙解释下,谢谢
回复
ACMAIN_CHM 2009-12-27
建议你先自己试着解释一下这个存储过程,否则别人也根本不知道你目前已经懂了什么,到什么层次,到底是哪儿不懂。

写出你自己的理解,然后让别人来看你的理解是否正确。 否则别人解释过简单你还是理解不了,解释得过细,可能又是根本不必要。
回复
相关推荐
发帖
应用实例
创建于2007-09-28

2.7w+

社区成员

MS-SQL Server 应用实例
申请成为版主
帖子事件
创建了帖子
2009-12-27 02:23
社区公告
暂无公告