SSIS使用send_dbmail

时间:2017-08-03 21:12:50

标签: sql sql-server ssis

您好我正在尝试使用msdb.dbo.sp_send_dbmail使用包生成的批次ID从我的包中向团队发送错误记录的电子邮件。
我的查询以这种格式编写时运行:

  

@query ='SELECT BatchID,ErrorRecord FROM dbo.ErrorLog where   BatchID =(从dbo.ErrorLog中选择Max(BatchID))'

但我希望使用参数映射,这样我就可以获取使用SSIS中的execute sql任务生成的特定BatchID的记录。
我的查询如下:

  

@query ='SELECT BatchID,ErrorRecord FROM dbo.ErrorLog where   BatchID =?'

我在execute sql task的参数映射中映射了'$ package :: BatchID'。   但仍然由于某种原因,此查询似乎没有拾取任何错误行  你能帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

这里的问题是查询没有检测到"?"。 所以我在SSIS中创建了一个新的变量MailQuery作为字符串变量,并将查询作为

传递
  

" SELECT BatchID,ErrorRecord FROM dbo.ErrorLog其中BatchID =" +(DT_WSTR,10)@ [$ Package :: BatchID]

在参数映射的执行sql任务中放入这个新变量。 在SQL语句中写

  

@query =?

现在任务完全正常。