? 这个整个语句段实现什么功能,请详细解释???

huangwei_d107 2005-10-06 10:35:29
if @message = '1'

begin
select @pMsg = '彩铃是为追求个性的您而推出的一项新服务。开通彩铃后,当别人给您打电话时,对方听到是个性化音乐铃声!铃声可以随意更换,体现您与众不同的每一面。 '
insert into tbSMNotice(fdcSourAddr,fdcDestAddr,fdcFeeAddr,fdcMessage,fdiFeeType,fdiFmtType,fdiArea,fdcSubArea,fdiUserType)
values(@Haoma + '12530',@SourAddr,@SourAddr,@pMsg, 70000 ,0,@iArea,@cSubArea,@iUserType)
if @@error <> 0 goto ERROR_QUIT

COMMIT TRAN
return
end
...全文
82 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
iwl 2005-10-06
  • 打赏
  • 举报
回复
如果if成立,执行负值给@pMsg ,然后插入一笔记录给表tbSMNotice

如果出错则跳到ERROR_QUIT,回退!否则往下COMMIT TRAn,return返回,结束


不过你似乎漏了一个begin tran,应该放在insert之前
tlfangqing 2005-10-06
  • 打赏
  • 举报
回复
如果@message='1'(估计是短信类别),开始将对应的信息插入表tbSMNotice中,如果出错就返回,不出错就提交事务.
点点星灯 2005-10-06
  • 打赏
  • 举报
回复
--另外,你的程序中加了事物,在出错后会自动回滚。

COMMIT TRAN
点点星灯 2005-10-06
  • 打赏
  • 举报
回复
--参考

B.用 @@ERROR 有条件地退出一个过程
在此示例中,IF...ELSE 语句在存储过程中的 INSERT 语句后检测 @@ERROR。@@ERROR 变量的值将决定传给调用程序的返回值,以指示此过程的成功与失败。

USE pubs
GO

-- Create the procedure.
CREATE PROCEDURE add_author
@au_id varchar(11),@au_lname varchar(40),
@au_fname varchar(20),@phone char(12),
@address varchar(40) = NULL,@city varchar(20) = NULL,
@state char(2) = NULL,@zip char(5) = NULL,
@contract bit = NULL
AS

-- Execute the INSERT statement.
INSERT INTO authors
(au_id, au_lname, au_fname, phone, address,
city, state, zip, contract) values
(@au_id,@au_lname,@au_fname,@phone,@address,
@city,@state,@zip,@contract)

-- Test the error value.
IF @@ERROR <> 0
BEGIN
-- Return 99 to the calling program to indicate failure.
PRINT "An error occurred loading the new author information"
RETURN(99)
END
ELSE
BEGIN
-- Return 0 to the calling program to indicate success.
PRINT "The new author information has been loaded"
RETURN(0)
END
GO

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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