@query=exec('select * from exsample where colum1=' + @parameter)
这样行不?

解决方案 »

  1.   

    exec xp_sendmail '[email protected]','message',
          @query='select * from exsample where colum1=' + @parameter
      

  2.   

    不好意思,各位大哥,这样写是不对的啊。
    我感觉是不是外面程序的参数根本无法传递导@query中去啊。
      

  3.   

    exec('
    exec xp_sendmail '[email protected]','message',
          @query='select * from exsample where colum1=' + @parameter+
    ')
      

  4.   

    因为我发现,用xp_sendmail发邮件的时候,@query参数后面应该是一个可以单独运行的select语句(以字符窜的形式赋给@query),所以外面的参数他好象不识别,我想where条件句范围可以用子查询赋予,可以解决。但是求@parameter的程序段就重复写一次了。
      

  5.   

    示例
    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
      

  6.   

    直接执行 @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