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