7 sql-server sp-send-dbmail temp-tables
我已经尝试了每个该死的论坛上的每条大道,但无济于事!需要将已存储在表中的SQLPERF(logspace)的结果发送sp_send_dbmail给收件人.
工作的第2步是失败发生的地方.请帮忙!
EXEC msdb.dbo.sp_send_dbmail
@profile_name= 'MyDBA',
@recipients= 'Mack@mydba.co.za',
@subject='Log Warning',
@query='SELECT * from #TempForLogSpace WHERE LogSpaceUsed >80
Run Code Online (Sandbox Code Playgroud)
mrd*_*nny 10
您无法使用数据库邮件从临时表进行查询.您用于创建临时表的会话(我假设您的工作的第1步)已关闭,并且在第2步开始时启动了新会话.由于会话已关闭,因此表已被删除(即使表尚未被删除,因为它是新会话,您无权访问其他会话临时表).
可以创建一个物理表并使用它(在tempdb数据库或数据库中)或者在@query中使用select*from #TempForLogSpace将创建输出的代码放在最后(存储过程将更容易处理)在这种情况下).
我知道这个线程有点旧,但万一有人偶然发现,问题就像mrdenny说sp_send_dbmail存储过程在它自己的会话中运行,但是你可以通过使用全局临时表来解决这个问题(表格的前缀)有两个磅标志(##)).
| 归档时间: |
|
| 查看次数: |
8755 次 |
| 最近记录: |