0

我知道这在过去已经出现了很多,但在这种情况下,我在谷歌上搜索或找到的修复都没有对我有用。

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

-- 启动 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,所以现在我失去了我,我需要帮助。

4

2 回答 2

1

替换这个:

TestcoRef <> '' 

有了这个:

TestcoRef <> ''''

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

于 2015-06-23T15:58:01.023 回答
0

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

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

于 2015-06-29T09:00:59.157 回答