萌新求教执行SQL存储过程的问题

笑脸脸笑 2018-11-25 11:58:03
小弟SQL新人一名,以前注册的CSDN帐号忘了,只好重新注册一个上来问各位大神
因为比较急,只好发个0分贴问各位大神,希望各位大神不要介意
公司要我学习接手SQL,以前的同事留下了很多存储过程,小弟看不懂,也找不到人问
现在有一个需求:在数据库A中查询出缺货目录,然后用在数据库B中使用缺货目录查询出对应的缺货负责人,然后执行存储过程发邮件给负责人
代码如下


以下在数据库db1中进行查询
DELETE FROM [缺货目录]
INSERT INTO [缺货目录](订单号,编号,产品名字,型号,数量)
select d.订单号,c.编号,c.产品名字,c.型号,b.数量
from 发货表 A,订货表 B,仓库表 C,存货表 d
where A.列A1=1 and A.ID=B.列B1 and B.列B1=1 and B.列B2=C.列C1 and d.列D1=a.列A2
order by d.订单号


以上代码用于查出缺货的名单并生成一张表用于下一步查询,表结构如下



以下在数据库db2中进行查询
SELECT DISTINCT b.[销售订单],b.[工程名],b.[工程管理人],b.[工程经理]
FROM db1.dbo缺货目录 a,db2.dbo.汇报 c,db2.dbo.合同行 b
where c.列C1=a.列A1 AND c.列C1=b.列B1


以上代码是在db2中,选择db1的缺货目录、db2的工程目录,来查询出缺货对应的工程名单负责人
然后要发个邮件给这些负责人,告诉他们关注发货了吗
这是查询结果


公司里面有个存储过程,boss叫我执行存储过程就会自动发邮件

ALTER proc SendMail
@Mail tvpMail readonly
as
begin


declare @SNIndex bigint
declare @AllocCount int
select @AllocCount=Count(1) from @Mail
exec[dbo].AllocSerials @AllocCount = @AllocCount,@StartSN = @SNIndex output

insert into FSMail(
ID,CreatedOn,ModifiedOn,Priority,[Status],
CreatedBy,ModifiedBy
,[Subject]
,MailTo,cc,BCC
,Body
,MailFrom
,MailToUserID,Remark
,[WorkflowID] ,[StateID],[InstanceID] ,[StateID] ,[EntityID],[EntityFullName]
,[SendAttachment]
,SysVersion
)
select ID=@SNIndex-1+ROW_NUMBER() over(order by ID)
,CreatedOn=getdate(),ModifiedOn=getdate(),Priority=1,[Status]=0
,CreatedBy=CreatedBy,ModifiedBy='admin'
,[Subject]
,MailTo,cc,BCC
,Body
,MailFrom
,MailToUserID
,Remark
,[WorkflowID] ,[StateID],[InstanceID] ,[StateID] ,[EntityID],[EntityFullName]
,[SendAttachment]
,SysVersion=0
from @Mail
end


执行这个存储过程,会在FSMail中写入新数据,然后会有个程序检查FSMail有没有新数据,有这个程序就会发邮件

小弟有两个问题
1、因为db1、db2的表是持续更新的,如何将这两个(两次)查询,只要一次查询就能查询出 缺货工程名单负责人名单?
2、然后如何把名单执行存储过程发邮件?(这个比较重要点)

萌新入门SQL,实在不懂,希望各位大人帮帮忙!
...全文
75 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
RINK_1 2018-11-26
  • 打赏
  • 举报
回复
我觉得你的关键是如何根据查询出的缺货对应的工程名单负责人,来查询到对应的待发邮件数据,比如收件人的邮件地址、邮件正文内容、附件内容等,然后插入到@Mail中。 一旦@Mail中的待发邮件数据都有了,后续根据存储过程去发邮件,你就不用关心太多了,因为你也说了最终发邮件是由一个程序去处理的,估计这个程序一直在轮询检查FSMail表里是否有新数据需要生成为邮件去发送,所以关键是如何生成@Mail中的邮件数据。 但是你给的信息里好像并未提及如何生成@Mail中的数据。
早起晚睡 2018-11-26
  • 打赏
  • 举报
回复
发邮件 我也没用过 给你找了个链接看看把https://www.cnblogs.com/sdadx/p/8268606.html

11,850

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 非技术版
社区管理员
  • 非技术版社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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