有关存储过程的疑问

来源:互联网 发布:服务器ftp软件 编辑:程序博客网 时间:2024/05/16 08:56

最近,看sql server 联机帮助的时候,发现有些存储过程可以有  返回值。例如xp_sendmail,它的返回值是0或1,可是 怎么用这个返回值呢 ?

本人写了,一点代码,执行报错,

create proc dt_sendmsg
as
begin
 --定义变量用于动态的读取表记录
 declare @mailname varchar(100)
 declare @subjects varchar(100)
 declare @context varchar(100)
 declare @attacfilename varchar(100)
 declare @filepath varchar(100)
 declare @state int
 declare @file varchar(200)
 declare @num int
 declare @flag bit
 declare @flags varchar(50)
 begin tran
  select @num = count(*) from recipients where state = 0
  if @num > 0
   begin
    exec master..xp_startmail
    while @num>0
     begin
      select top 1 @mailname = mailname ,@subjects = subject,@context = context, @file = ltrim(rtrim(filepath)) +'/'+ ltrim(rtrim(attacfilename)) from SendMailProc where state = 0
      if @flag = exec master..xp_sendmail @recipients = @mailname,@message = @context,@subject = @subjects, @attachments = @file
       if @flag = 1
        update recipients set state = 1-- where mailname = @mailname--发送成功
       else
       select @num = count(*) from recipients where state = 0
     end
      exec master..xp_stopmail
   end
  else commit --事务结束
 commit--事务提交
end

上面的黑体 有问题

请教???????????????????????

原创粉丝点击