Не удалось инициализировать библиотеку sqlcmd с номером ошибки -2147024809

Я создал новый профиль электронной почты с суперадминистратором и настроил файл smtp.

Затем, когда я выполняю этот запрос:

   exec msdb.dbo.sp_send_dbmail
   @profile_name ='admin_mail',
   @recipients = '[email protected]',
   @execute_query_database = 'DashboardPowerBi',
   @query = 'select top 20 from Client_1',
   @subject= 'Liste des clients',
   @body_format ='HTML',
   @attach_query_result_as_file = 1;

Я получаю эту ошибку:

Не удалось инициализировать библиотеку sqlcmd с номером ошибки -2147024809.

-2147024809 — это 0x80070057, COR_E_ARGUMENT, что соответствует коду .NET, выдающему ArgumentException. К сожалению, это само по себе довольно бесполезно для диагностики проблемы.

Jeroen Mostert 09.04.2019 13:05
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
1
15 612
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Ответ принят как подходящий

Что ж, запрос некорректен. Вам нужно указать, какие столбцы вы выбираете

@query = 'select top 20 * from Client_1',

Но вместо использования «*» на самом деле перечислите нужные столбцы.

У меня также было это сообщение об ошибке. В итоге у меня не было полностью определенных таблиц базы данных в запросе. database.schema.tablename У меня было только имя таблицы.

При поиске у других была эта ошибка, потому что вложенный файл был слишком большим. Вы можете изменить это в SSMS - Management - Database Mail

В моем случае, после того, как я протестировал запрос и инкапсулировал его в строку, я забыл обновить...

'' AS Blank

к

'''' AS Blank

Недавно у меня возникла проблема, связанная с этим, решение здесь состояло в том, чтобы полностью определить базу данных + имя_схемы + имя_таблицы («выбрать * из продаж..продажи_месяц»), даже если вы находитесь в той же базе данных.

С уважением!

Проблема заключается в прямом прохождении запроса в @qry.

Попробуйте вставить присоединяемую запись в Global TempTable (##Temp) и попробуйте использовать этот сценарий выбора с указанными именами столбцов. Как ниже

DECLARE @qry varchar(8000) = 'SET NOCOUNT ON
SELECT 
Column1,
Column2
From ##TEMPEMAIL
    SET NOCOUNT OFF'

Я обнаружил, что у вас не может быть квадратных скобок вокруг вашего полного доменного имени, поэтому измените это

SET @sql = 'SELECT field1, field2, etc FROM [DBNAME].[dbo].[Table1]'

вместо этого.

SET @sql = 'SELECT field1, field2, etc FROM DBNAME.dbo.Table1'

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