cha*_*ama 5 sql stored-procedures sql-server-2005
我正在开发一个 SQL 存储过程,该过程应该发送包含查询结果的附件。
我用来sp_send_dbmail发送电子邮件。
在我想要发送的查询中,我将 加入到表变量中。当我执行存储过程时,我收到一条错误消息,指出该变量不存在。
我的代码:
DECLARE @t TABLE (
id INT IDENTITY(1,1),
some fields
)
DECLARE @query VARCHAR(MAX)
SET @query = 'SELECT
some values
FROM @t t
INNER JOIN dbo.Table d ON t.field = d.field
EXEC msdb.dbo.sp_send_dbmail @recipients=@recipients_list,
@subject = @subject,
@query = @query,
@attach_query_result_as_file = 1,
@query_result_width = 4000,
@query_attachment_filename = 'Details.txt'
Run Code Online (Sandbox Code Playgroud)
有什么方法可以让我引用这个存储过程中的局部变量吗?如果没有,为什么不呢?
蒂亚!
(我使用的是 SQL Server 2005)
该查询在与原始代码主体不同的上下文中运行,因此它不知道任何局部变量。尝试使用全局临时表。
CREATE TABLE ##t (
id INT IDENTITY(1,1),
some fields
)
DECLARE @query VARCHAR(MAX)
SET @query = 'SELECT
some values
FROM ##t t
INNER JOIN dbo.Table d ON t.field = d.field'
EXEC msdb.dbo.sp_send_dbmail @recipients=@recipients_list,
@subject = @subject,
@query = @query,
@attach_query_result_as_file = 1,
@query_result_width = 4000,
@query_attachment_filename = 'Details.txt'
DROP TABLE ##t
Run Code Online (Sandbox Code Playgroud)