【问题标题】:SQL Job (Send Mail) - error formatting query probably invalid parametersSQL Job (Send Mail) - 错误格式化查询可能参数无效
【发布时间】:2015-06-23 15:53:02
【问题描述】:

我知道这在过去已经出现过很多次,但我在 Google 上搜索过或在此处找到的任何修复程序在这种情况下都没有对我有用。

我正在以 Transact-SQL 脚本的形式运行一个相当标准的 SQL Server 代理作业,其中包含以下详细信息:(为了我老板的理智,将一些东西替换为 ***)

-- 启动 T-SQL

USE msdb
EXEC sp_send_dbmail
  @profile_name = 'MainProfile',
  @recipients = 'test@test.co.uk',
  @subject = 'T-SQL Query Result',
  @execute_query_database = 'test30',
  @query = 'SELECT ReferralReceivedDate,testRef,testcoMetadata.testcoRef,testcoMetadata.TimeSpentWithtester    
FROM TestCasesTable, TestcoMetadata 
WHERE testcasestable.CaseID = TestcoMetadata.CaseID AND AgencyName = [Test Injury] AND TestcoMetadata.TestcoRef IS NOT NULL AND TestcoRef <> '' 
order by ReferralReceivedDate desc',
@attach_query_result_as_file=1,
@query_attachment_filename = 'Results.csv',
@query_result_separator = ','

-- 结束 T-SQL--

查询本身可以正常运行,没有任何问题。此作业的所有者已再次用于其他作业,没有任何问题。在步骤属性中选择的数据库与@execute 行中提到的相同。

我感觉这要么是它试图创建 csv 的方式失败,要么是与 dbmail 部分的权限有关。我只是一名兼职 DBA,所以现在我失去了我,我需要帮助。

【问题讨论】:

  • 你启用sp_send_dbmail的使用了吗?默认情况下它是禁用的,您必须启用它。
  • 应该是,我们正在将它用于另一个数据库上的另一个工作,这似乎工作正常。我可能应该只对发送邮件部分运行默认测试,但无需检查任何查询。谢谢。

标签: sql-server export-to-csv sql-server-agent sp-send-dbmail dbmail


【解决方案1】:

替换这个:

TestcoRef <> '' 

有了这个:

TestcoRef <> ''''

您正在创建动态 sql,因此您需要对单引号进行转义。

【讨论】:

  • 恐怕没有帮助,但我会检查其余部分以确定。
【解决方案2】:

所以我从来没有完成这项工作,但事实证明我的老板已经做好了一些事情。

他设置了一个存储过程来运行一个批处理文件,该批处理文件使用电子邮件程序 exe 发送邮件,因为它显然比 SQL 邮件更好/更强大。 我只是复制了他的 S.P 并对其进行了修改以包含我的查询。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-10
    • 1970-01-01
    • 2021-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多