您好我正在尝试使用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'。 但仍然由于某种原因,此查询似乎没有拾取任何错误行 你能帮我解决这个问题。
答案 0 :(得分:0)
这里的问题是查询没有检测到"?"。 所以我在SSIS中创建了一个新的变量MailQuery作为字符串变量,并将查询作为
传递" SELECT BatchID,ErrorRecord FROM dbo.ErrorLog其中BatchID =" +(DT_WSTR,10)@ [$ Package :: BatchID]
在参数映射的执行sql任务中放入这个新变量。 在SQL语句中写
@query =?
现在任务完全正常。