SQL Job (Send Mail) - ошибка форматирования запроса, возможно, неверные параметры

Я знаю, что это случалось много в прошлом, но ни одно из исправлений, которые я нашел или нашел здесь, не помогло мне в этом случае.

Я запускаю довольно стандартное задание агента 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. Я работаю неполный рабочий день, так что это потеряло меня, и мне нужна помощь.

2 ответа

Заменить это:

TestcoRef <> '' 

С этим:

TestcoRef <> ''''

Вы создаете динамический sql, поэтому вам нужно экранировать одинарные кавычки.

Так что я никогда не получал эту работу, но оказывается, что мой босс уже что-то приготовил.

У него была настроена хранимая процедура для запуска командного файла, который использовал exeiler e-mail для отправки почты, поскольку он, очевидно, лучше / мощнее, чем почта SQL. Я просто скопировал его SP и изменил его, чтобы включить мой запрос.

Другие вопросы по тегам