gpt4 book ai didi

sql - sp_send_dbmail 中的局部变量?

转载 作者:行者123 更新时间:2023-12-04 22:19:43 70 4
gpt4 key购买 nike

我正在研究一个 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'

有什么办法可以让我在这个存储过程中引用局部变量吗?如果没有,为什么不呢?

蒂亚!

(我使用的是 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

关于sql - sp_send_dbmail 中的局部变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4739682/

70 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com