SQL中xp_sendmail中@query的用法 @query=exec('select * from exsample where colum1=' + @parameter)这样行不? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 exec xp_sendmail '[email protected]','message', @query='select * from exsample where colum1=' + @parameter 不好意思,各位大哥,这样写是不对的啊。我感觉是不是外面程序的参数根本无法传递导@query中去啊。 exec('exec xp_sendmail '[email protected]','message', @query='select * from exsample where colum1=' + @parameter+') 因为我发现,用xp_sendmail发邮件的时候,@query参数后面应该是一个可以单独运行的select语句(以字符窜的形式赋给@query),所以外面的参数他好象不识别,我想where条件句范围可以用子查询赋予,可以解决。但是求@parameter的程序段就重复写一次了。 示例CREATE procedure sendmailwith recompileas set datefirst 1 SET QUOTED_IDENTIFIER off declare @midept char(5), @modept char(5), @mail varchar(30), @msql varchar(1000), @mstatus tinyint, @memo varchar(300), @msubject varchar(30)set @mail='[email protected];[email protected]'select @msql='shsalediscount' //调用执行一个存储过程select @memo='以下是每天得销售损失情况'+convert(char(10),getdate(),102)select @msubject='每天得销售损失'exec @mstatus=master..xp_sendmail @recipients=@mail, @message=@memo, @subject=@msubject, @width=800, @query=@msql 直接执行 @query语句的例子 declare @midept char(5), @modept char(5), @mail varchar(30), @msql varchar(1000), @mstatus tinyint, @memo varchar(300), @msubject varchar(30)set @mail='[email protected]'select @msql='select om_dept,os_product,pr_name,os_price,saleprice,os_price-saleprice as discount,os_saleamt,convert(char(8),dateadd(dd,-1,getdate()),112) as saledate from [ebtsusql].[tdmis].[dbo].td_originalsale_m inner join [ebtsusql].[tdmis].[dbo].td_originalsale_s on m_sequence=s_sequence,[ebtsusql].[tdmis].[dbo].td_product where convert(char(8),om_date,112)=convert(char(8),dateadd(dd,-1,getdate()),112) and saleprice<os_price and os_product=productno order by om_dept,os_product 'select @memo='以下是每天得销售损失情况'+convert(char(10),getdate(),102)select @msubject='通知:未输入的调拨单'exec master..xp_sendmail @recipients=@mail, @message=@memo, @subject=@msubject, @width=800, @query=@msql 插入月份的问题 问一个backup的问题 求sql语句 求一条SQL,进行统计 请邹老大来瞅瞅 求一个更新表的sql语句 存储过程调用存储过程 当SQLServerAgent 正在启动时,无法执行此操作。请稍候再试 请教一个语句问题 一个数据库约束的问题 在循环中用游标 sql server如何按照每天运行两次的频率进行触发存储过程呢
@query='select * from exsample where colum1=' + @parameter
我感觉是不是外面程序的参数根本无法传递导@query中去啊。
exec xp_sendmail '[email protected]','message',
@query='select * from exsample where colum1=' + @parameter+
')
CREATE procedure sendmail
with recompile
as
set datefirst 1
SET QUOTED_IDENTIFIER off
declare
@midept char(5),
@modept char(5),
@mail varchar(30),
@msql varchar(1000),
@mstatus tinyint,
@memo varchar(300),
@msubject varchar(30)set @mail='[email protected];[email protected]'
select @msql='shsalediscount' //调用执行一个存储过程select @memo='以下是每天得销售损失情况'+convert(char(10),getdate(),102)
select @msubject='每天得销售损失'
exec @mstatus=master..xp_sendmail @recipients=@mail,
@message=@memo,
@subject=@msubject,
@width=800,
@query=@msql
@midept char(5),
@modept char(5),
@mail varchar(30),
@msql varchar(1000),
@mstatus tinyint,
@memo varchar(300),
@msubject varchar(30)set @mail='[email protected]'
select @msql='select om_dept,os_product,pr_name,os_price,saleprice,os_price-saleprice as discount,os_saleamt,convert(char(8),dateadd(dd,-1,getdate()),112) as saledate
from [ebtsusql].[tdmis].[dbo].td_originalsale_m inner join [ebtsusql].[tdmis].[dbo].td_originalsale_s on m_sequence=s_sequence,[ebtsusql].[tdmis].[dbo].td_product
where convert(char(8),om_date,112)=convert(char(8),dateadd(dd,-1,getdate()),112) and saleprice<os_price and os_product=productno
order by om_dept,os_product 'select @memo='以下是每天得销售损失情况'+convert(char(10),getdate(),102)
select @msubject='通知:未输入的调拨单'exec master..xp_sendmail @recipients=@mail,
@message=@memo,
@subject=@msubject,
@width=800,
@query=@msql