Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4   вперед  Ctrl      все
 Re: Отправка мыла с сервера с результатами запроса в теле письма  [new]
IFK
Member

Откуда: Гондурас
Сообщений: 1025
gang
IFK
пропущено...


Хорошо. Указание базы и схемы удалил. Объясните мне тогда разницу между вариантом, который работает (одно поле в запросе
SELECT field_1 FROM tbl_Temp_Email
) и неработающим запросом
SELECT * FROM tbl_Temp_Email
? Что, в первом случае блокировка не срабатывает?


Разницу между этими "вариантами" объяснять бесполезно, т.к. это не реально выполняемый код, а куски чего-то выдернутого откуда-то. Приведёте полный текст обоих триггеров - будет о чем говорить.


Полный код триггера приводил. Оба триггера абсолютно идентичны, единственное отличие в приведенных выше строках. Меняю * на field_1 и все работает.
10 янв 13, 16:43    [13748413]     Ответить | Цитировать Сообщить модератору
 Re: Отправка мыла с сервера с результатами запроса в теле письма  [new]
samoxod
Member

Откуда: Москва
Сообщений: 31
	IF (SELECT db5_Index FROM Inserted)='2' or (SELECT db5_Index FROM Inserted)='3'


Что вернет "SELECT db5_Index FROM Inserted", если в INSERTED несколько строк?
Что будет с "Set @res=(SELECT DBMID FROM Inserted)", если в INSERTED несколько строк?
Если в Inserted несколько строк - например со значениями db5_Index = '1','2','3' то нужно ли из Inserted выбирать с db5_Index = '1'?

"SELECT @res=(SELECT * FROM tbl_Temp_Email)" - можно с любой таблицей попробовать выполнить запрос и убедиться, что так писать нельзя

Можно сформировать строчку @res "склеивая" через запятую значения полей таблицы, приводя каждое поле к типу данных VARCHAR
10 янв 13, 16:44    [13748420]     Ответить | Цитировать Сообщить модератору
 Re: Отправка мыла с сервера с результатами запроса в теле письма  [new]
IFK
Member

Откуда: Гондурас
Сообщений: 1025
samoxod
	IF (SELECT db5_Index FROM Inserted)='2' or (SELECT db5_Index FROM Inserted)='3'


Что вернет "SELECT db5_Index FROM Inserted", если в INSERTED несколько строк?
Что будет с "Set @res=(SELECT DBMID FROM Inserted)", если в INSERTED несколько строк?
Если в Inserted несколько строк - например со значениями db5_Index = '1','2','3' то нужно ли из Inserted выбирать с db5_Index = '1'?

"SELECT @res=(SELECT * FROM tbl_Temp_Email)" - можно с любой таблицей попробовать выполнить запрос и убедиться, что так писать нельзя

Можно сформировать строчку @res "склеивая" через запятую значения полей таблицы, приводя каждое поле к типу данных VARCHAR


С Inserted разберусь, когда заработает отсылка.
Склеивать - не думаю, что сохранится форматирование в виде таблички с заголовками полей.
10 янв 13, 16:47    [13748448]     Ответить | Цитировать Сообщить модератору
 Re: Отправка мыла с сервера с результатами запроса в теле письма  [new]
IFK
Member

Откуда: Гондурас
Сообщений: 1025
samoxod
	IF (SELECT db5_Index FROM Inserted)='2' or (SELECT db5_Index FROM Inserted)='3'


Что вернет "SELECT db5_Index FROM Inserted", если в INSERTED несколько строк?
Что будет с "Set @res=(SELECT DBMID FROM Inserted)", если в INSERTED несколько строк?
Если в Inserted несколько строк - например со значениями db5_Index = '1','2','3' то нужно ли из Inserted выбирать с db5_Index = '1'?

"SELECT @res=(SELECT * FROM tbl_Temp_Email)" - можно с любой таблицей попробовать выполнить запрос и убедиться, что так писать нельзя

Можно сформировать строчку @res "склеивая" через запятую значения полей таблицы, приводя каждое поле к типу данных VARCHAR


Что так писать нельзя - знаю. Строка стоит как комментарий. Вроде бы видно, нет? Зачем обсуждать то, что исключено из кода исполнения? ;)
10 янв 13, 16:48    [13748462]     Ответить | Цитировать Сообщить модератору
 Re: Отправка мыла с сервера с результатами запроса в теле письма  [new]
gang
Member

Откуда:
Сообщений: 1394
IFK,

Задать полную схему:
@query='SELECT * FROM MyDB.dbo.tbl_Temp_Email'
, где MyDB-заменить на имя вашей пользовательской БД. 

Только делать этого не стоит, т.к. в результате вы вместо ошибки получите вечно висящую блокировку.
Не мучайтесь - разложите вашу строку из inserted в текстовую переменную и подставляйте ее сразу в @body. Вам уже несколько
человек решавшие подобные задачи указали на этот вариант и столько же написали о невозможности реализации через @query в одной транзакции (без асинхрона).
10 янв 13, 16:53    [13748513]     Ответить | Цитировать Сообщить модератору
 Re: Отправка мыла с сервера с результатами запроса в теле письма  [new]
IFK
Member

Откуда: Гондурас
Сообщений: 1025
gang
IFK,

Задать полную схему:
@query='SELECT * FROM MyDB.dbo.tbl_Temp_Email'
, где MyDB-заменить на имя вашей пользовательской БД. 

Только делать этого не стоит, т.к. в результате вы вместо ошибки получите вечно висящую блокировку.
Не мучайтесь - разложите вашу строку из inserted в текстовую переменную и подставляйте ее сразу в @body. Вам уже несколько
человек решавшие подобные задачи указали на этот вариант и столько же написали о невозможности реализации через @query в одной транзакции (без асинхрона).


Хорошо, спасибо! Можно под занавес объяснить вразумительно насчет блокировки, как и почему, почему вечная и т.д.? Я хочу разобраться.

Кстати, никто так и не объяснил разницу при одном поле в запросе и несколькими - почему в первом случае все срабатывает, а во втором выдает ошибку. :(
10 янв 13, 17:01    [13748598]     Ответить | Цитировать Сообщить модератору
 Re: Отправка мыла с сервера с результатами запроса в теле письма  [new]
gang
Member

Откуда:
Сообщений: 1394
IFK
Полный код триггера приводил. Оба триггера абсолютно идентичны, единственное отличие в приведенных выше строках. Меняю * на field_1 и все работает.

Ни в одном из приведенных Вами вариантов полного кода триггера нет упоминания field_1. И оно понятно почему: потому что Вы постите код "из головы" а не из окна запросов SSMS. Неужто Ctrl+C, Ctrl+V такая сложная комбинация?
10 янв 13, 17:06    [13748650]     Ответить | Цитировать Сообщить модератору
 Re: Отправка мыла с сервера с результатами запроса в теле письма  [new]
Glory
Member

Откуда:
Сообщений: 104760
IFK
Кстати, никто так и не объяснил разницу при одном поле в запросе и несколькими - почему в первом случае все срабатывает, а во втором выдает ошибку.

Потому что наверное дело не в количестве полей, а в данных
Вам то наверное лень проверить, при наличии какого именно поля происходит ошибка.
10 янв 13, 17:09    [13748673]     Ответить | Цитировать Сообщить модератору
 Re: Отправка мыла с сервера с результатами запроса в теле письма  [new]
IFK
Member

Откуда: Гондурас
Сообщений: 1025
gang
IFK
Полный код триггера приводил. Оба триггера абсолютно идентичны, единственное отличие в приведенных выше строках. Меняю * на field_1 и все работает.

Ни в одном из приведенных Вами вариантов полного кода триггера нет упоминания field_1. И оно понятно почему: потому что Вы постите код "из головы" а не из окна запросов SSMS. Неужто Ctrl+C, Ctrl+V такая сложная комбинация?


А что изменит реальное название поля, если больше ничего не меняется?
10 янв 13, 17:13    [13748720]     Ответить | Цитировать Сообщить модератору
 Re: Отправка мыла с сервера с результатами запроса в теле письма  [new]
IFK
Member

Откуда: Гондурас
Сообщений: 1025
Glory
IFK
Кстати, никто так и не объяснил разницу при одном поле в запросе и несколькими - почему в первом случае все срабатывает, а во втором выдает ошибку.

Потому что наверное дело не в количестве полей, а в данных
Вам то наверное лень проверить, при наличии какого именно поля происходит ошибка.


Наверное лень. Хотя я бы этого не утверждал. Проверю, чисто чтобы исключить и этот вариант.
10 янв 13, 17:14    [13748724]     Ответить | Цитировать Сообщить модератору
 Re: Отправка мыла с сервера с результатами запроса в теле письма  [new]
gang
Member

Откуда:
Сообщений: 1394
IFK
Хорошо, спасибо! Можно под занавес объяснить вразумительно насчет блокировки, как и почему, почему вечная и т.д.? Я хочу разобраться.
Кстати, никто так и не объяснил разницу при одном поле в запросе и несколькими - почему в первом случае все срабатывает, а во втором выдает ошибку. :(

Ну давайте по порядку. Вот код для воспроизведения блокировки, который я использовал:
+
use support 
go		
if object_id('tbl_DB5') is not null drop table tbl_DB5
go
create table tbl_DB5 (DBMID int, y varchar(1000),db5_Index  int)
go
insert tbl_DB5 select 1, '111',1
insert tbl_DB5 select 2, '222',2
insert tbl_DB5 select 3, '333',3
go
create TRIGGER [dbo].[Trigger_DB5_Index] 
   ON  [dbo].tbl_DB5
   AFTER UPDATE
AS 
--Вот примерно тут какбе неявно begin tran. На самом деле чуть раньше.
	DECLARE @res varchar(max)
IF UPDATE(db5_Index)
BEGIN
	IF (SELECT db5_Index FROM Inserted)='2' or (SELECT db5_Index FROM Inserted)='3'
	BEGIN
		SET NOCOUNT ON;
		Set @res=(SELECT DBMID FROM Inserted)
		SELECT * INTO tbl_Temp_Email FROM tbl_DB5 WHERE(DBMID=@res)
		--SELECT @res=(SELECT * FROM tbl_Temp_Email)
		EXEC msdb.dbo.sp_send_dbmail
				--@profile_name = 'test',
				@recipients = 'MyMail@MyMailDomain.ru;',
				@importance ='High',
				@subject = 'Index has been changed',
				@query='SELECT * FROM support..tbl_Temp_Email';
		DROP TABLE tbl_Temp_Email
	END
END
--Вот примерно тут какбе неявно commit
GO

update tbl_DB5 set db5_Index = 2 where DBMID = 1

1) Вы апдейтите таблицу и запускается триггер
2) Триггер выполняется в транзакции и соответственно пока он не отработает полностью, включая отправку почты
он держит блокировки на затронутых его работой ресурсах в том числе и на таблице tbl_Temp_Email которая создается через select into.
3) Перед вызовом sp_send_dbmail таблица tbl_Temp_Email успешно создана, но заблокирована транзакцией триггера
4) Вызывается sp_send_dbmail которая через несколько вложенных проц-р вызавет в итоге SQLCMD, который выполняет 'SELECT * FROM support..tbl_Temp_Email' из отдельного коннекта.
5) Вызов SQLCMD видит блокировку наложенную триггером и ждет ее снятия для того чтобы выполнить запрос.
6) sp_send_dbmail ждет пока SQLCMD возвратит результат.
7) Все ждут. Ничего не происходит.

Можете в отдельном окне выполнить sp_who2 active и увидеть процесс от SQLCMD блокирумый Вашей основной сессией.
Рубите его kill-ом и получаете заветное:
Error formatting query, probably invalid parameters
10 янв 13, 17:26    [13748827]     Ответить | Цитировать Сообщить модератору
 Re: Отправка мыла с сервера с результатами запроса в теле письма  [new]
gang
Member

Откуда:
Сообщений: 1394
IFK
gang
пропущено...

Ни в одном из приведенных Вами вариантов полного кода триггера нет упоминания field_1. И оно понятно почему: потому что Вы постите код "из головы" а не из окна запросов SSMS. Неужто Ctrl+C, Ctrl+V такая сложная комбинация?


А что изменит реальное название поля, если больше ничего не меняется?

Изменится место в котором Вы его меняете. Вполне очевидно, что логика Ваших рассуждений (представления о коде) есть одно, логика рассуждения участников форума другое, а логика исполнения кода третье. Исходный код, фактически выполненный Вами с фактически возвращенным результатом (или ошибкой) единственное на что можно с некоторой оговоркой реально опереться. Если работать с единственным оригинальным кодом то и вопросов станет на порядок меньше.
10 янв 13, 17:34    [13748909]     Ответить | Цитировать Сообщить модератору
 Re: Отправка мыла с сервера с результатами запроса в теле письма  [new]
IFK
Member

Откуда: Гондурас
Сообщений: 1025
gang
IFK
Хорошо, спасибо! Можно под занавес объяснить вразумительно насчет блокировки, как и почему, почему вечная и т.д.? Я хочу разобраться.
Кстати, никто так и не объяснил разницу при одном поле в запросе и несколькими - почему в первом случае все срабатывает, а во втором выдает ошибку. :(

Ну давайте по порядку. Вот код для воспроизведения блокировки, который я использовал:
+
+
use support 
go		
if object_id('tbl_DB5') is not null drop table tbl_DB5
go
create table tbl_DB5 (DBMID int, y varchar(1000),db5_Index  int)
go
insert tbl_DB5 select 1, '111',1
insert tbl_DB5 select 2, '222',2
insert tbl_DB5 select 3, '333',3
go
create TRIGGER [dbo].[Trigger_DB5_Index] 
   ON  [dbo].tbl_DB5
   AFTER UPDATE
AS 
--Вот примерно тут какбе неявно begin tran. На самом деле чуть раньше.
	DECLARE @res varchar(max)
IF UPDATE(db5_Index)
BEGIN
	IF (SELECT db5_Index FROM Inserted)='2' or (SELECT db5_Index FROM Inserted)='3'
	BEGIN
		SET NOCOUNT ON;
		Set @res=(SELECT DBMID FROM Inserted)
		SELECT * INTO tbl_Temp_Email FROM tbl_DB5 WHERE(DBMID=@res)
		--SELECT @res=(SELECT * FROM tbl_Temp_Email)
		EXEC msdb.dbo.sp_send_dbmail
				--@profile_name = 'test',
				@recipients = 'MyMail@MyMailDomain.ru;',
				@importance ='High',
				@subject = 'Index has been changed',
				@query='SELECT * FROM support..tbl_Temp_Email';
		DROP TABLE tbl_Temp_Email
	END
END
--Вот примерно тут какбе неявно commit
GO

update tbl_DB5 set db5_Index = 2 where DBMID = 1

1) Вы апдейтите таблицу и запускается триггер
2) Триггер выполняется в транзакции и соответственно пока он не отработает полностью, включая отправку почты
он держит блокировки на затронутых его работой ресурсах в том числе и на таблице tbl_Temp_Email которая создается через select into.
3) Перед вызовом sp_send_dbmail таблица tbl_Temp_Email успешно создана, но заблокирована транзакцией триггера
4) Вызывается sp_send_dbmail которая через несколько вложенных проц-р вызавет в итоге SQLCMD, который выполняет 'SELECT * FROM support..tbl_Temp_Email' из отдельного коннекта.
5) Вызов SQLCMD видит блокировку наложенную триггером и ждет ее снятия для того чтобы выполнить запрос.
6) sp_send_dbmail ждет пока SQLCMD возвратит результат.
7) Все ждут. Ничего не происходит.

Можете в отдельном окне выполнить sp_who2 active и увидеть процесс от SQLCMD блокирумый Вашей основной сессией.
Рубите его kill-ом и получаете заветное:
Error formatting query, probably invalid parameters


Ага, понятно. Спасибо болььшое! Т.е. по логике получается, что необходимо разорвать этот порочный круг и заполнить временную таблицу ДО срабатывания триггера. Я правильно понимаю?
10 янв 13, 17:38    [13748953]     Ответить | Цитировать Сообщить модератору
 Re: Отправка мыла с сервера с результатами запроса в теле письма  [new]
gang
Member

Откуда:
Сообщений: 1394
IFK, Ну можно конечно и с этой стороны зайти, только не понятно как =). Ну а второй вариант разрыва порочного круга уже предложен - вынести отмылку из триггера.
10 янв 13, 17:45    [13748997]     Ответить | Цитировать Сообщить модератору
 Re: Отправка мыла с сервера с результатами запроса в теле письма  [new]
IFK
Member

Откуда: Гондурас
Сообщений: 1025
gang
IFK, Ну можно конечно и с этой стороны зайти, только не понятно как =). Ну а второй вариант разрыва порочного круга уже предложен - вынести отмылку из триггера.


А если вынести создание таблицы в отдельную ХП и запускать ее из триггера? А в триггере просто считывать из созданной таблицы данные?

Ну, или действительно, из триггера запускать ХП с отсылкой мыла. :(
10 янв 13, 17:51    [13749055]     Ответить | Цитировать Сообщить модератору
 Re: Отправка мыла с сервера с результатами запроса в теле письма  [new]
s_ustinov
Member

Откуда: Munchen, DE
Сообщений: 2202
IFK
Вопрос простой: как из таблицы выбрать ВСЕ поля и отправить результат выборки в теле письма, БЕЗ использования предварительного форматирования HTML. Спасибо!

Reporting Services?
10 янв 13, 18:05    [13749155]     Ответить | Цитировать Сообщить модератору
 Re: Отправка мыла с сервера с результатами запроса в теле письма  [new]
IFK
Member

Откуда: Гондурас
Сообщений: 1025
s_ustinov
IFK
Вопрос простой: как из таблицы выбрать ВСЕ поля и отправить результат выборки в теле письма, БЕЗ использования предварительного форматирования HTML. Спасибо!

Reporting Services?


А это че за фишка? Можно линк, где почитать? Спасибо!
10 янв 13, 18:20    [13749249]     Ответить | Цитировать Сообщить модератору
 Re: Отправка мыла с сервера с результатами запроса в теле письма  [new]
invm
Member

Откуда: Москва
Сообщений: 9402
IFK
А если вынести создание таблицы в отдельную ХП и запускать ее из триггера? А в триггере просто считывать из созданной таблицы данные?

Ну, или действительно, из триггера запускать ХП с отсылкой мыла. :(
Вы так ничего и не поняли...

Вот, в качестве идеи (допилите сами под свои нужды):
alter trigger dbo.Trigger_DB5_Index
on dbo.tbl_DB5
after update
as
begin
 set nocount on;
 
 if not update(db5_Index)
  return;
  
 declare @s varchar(max);
 
 select
  @s = replace(
   select
    t.fin_BAP
   from
    inserted i join
    View_DB5_FL t on t.DBMID = i.DBMID
   where
    i.db5_Index in ('2', '3')
   for xml auto
  ), '''', ''');

 if @@rowcount = 0
  return;
  
 select
  @s = 
'select
 n.v.value(''(@fin_BAP)[1]'', ''int'') as fin_BAP
from
 (select cast(''' + @s + ''' as xml)) t(x) cross apply
 t.x.nodes(''/t'') n(v);'

 exec msdb.dbo.sp_send_dbmail
  @profile_name = 'TEST',
  @recipients = 'test@test.com;',
  @importance ='High',
  @subject = 'Index has been changed',
  @query = @s;

end;
10 янв 13, 20:39    [13749974]     Ответить | Цитировать Сообщить модератору
 Re: Отправка мыла с сервера с результатами запроса в теле письма  [new]
s_ustinov
Member

Откуда: Munchen, DE
Сообщений: 2202
IFK
s_ustinov
пропущено...

Reporting Services?


А это че за фишка? Можно линк, где почитать? Спасибо!

http://msdn.microsoft.com/ru-ru/library/ms159106.aspx
С помощью служб Службы Reporting Services можно создать интерактивные, табличные, графические отчеты и отчеты свободной формы из реляционных, многомерных и XML-источников данных. Отчеты могут включать визуализацию сложных данных, в том числе диаграммы, карты и спарклайны. Можно публиковать отчеты, планировать их обработку или осуществлять доступ к отчетам по требованию. Имеется большой выбор форматов просмотра. Можно экспортировать отчеты в другие приложения, например Microsoft Excel. Также можно подписаться на публикуемые отчеты. Созданные отчеты можно просматривать с помощью веб-соединения или как часть приложения Microsoft Windows или сайта SharePoint. Также возможно создавать предупреждения об изменении данных в отчетах, опубликованных на сайте SharePoint, и получать электронные сообщения при изменении данных в отчете.
11 янв 13, 01:48    [13751146]     Ответить | Цитировать Сообщить модератору
 Re: Отправка мыла с сервера с результатами запроса в теле письма  [new]
paldis
Member

Откуда: Togliatti
Сообщений: 8
Здравствуйте! У меня схожая проблема при отправке e-mail посредствам sp_send_dbmail. Вываливается ошибка: Error formatting query, probably invalid parameters [SQLSTATE 42000] (Ошибка 22050). Шаг завершился с ошибкой.
Делаю задание с расписанием для отправки сообщения, в свойствах шага тип - TSQL, вот сам запрос:
+
EXEC msdb.dbo.sp_send_dbmail
      @profile_name = 'PROF2',
      @recipients = 'user@mycompany.ru',
      @query = 'declare @a table (sku varchar(15), descr varchar(60), qty varchar(10), putawayzone varchar(11), data varchar(11), addwho varchar(8), notes varchar(50)) insert @a
select lli.SKU, s.descr, sum( lli.QTY) as qty, l.PUTAWAYZONE, CONVERT (varchar (30), lli.ADDDATE, 104) as data, lli.ADDWHO , rd.NOTES
from [SCPRD].[wmwhse1].LOTXLOCXID lli (nolock)
inner join [SCPRD].[wmwhse1].LOC l (nolock) on lli.LOC = l.LOC --and l.PUTAWAYZONE in ("Z-DAMAGE-L" , "Z-DAMAGE-I")
inner join [SCPRD].[wmwhse1].SKU S (nolock) on s.SKU = lli.SKU
inner join [SCPRD].[wmwhse1].RECEIPTDETAIL rd (nolock) on lli.sku = rd.sku  and lli.ID = rd.TOID and CONVERT (varchar (30), rd.ADDDATE, 112) >= CONVERT (varchar (30), GETDATE()-30, 112)
where  lli.QTY <> 0 and CONVERT (varchar (30), lli.ADDDATE, 112) >= CONVERT (varchar (30), GETDATE()-30, 112) 
group by lli.SKU, s.DESCR, l.PUTAWAYZONE, CONVERT (varchar (30), lli.ADDDATE, 104), lli.ADDWHO , rd.NOTES
order by lli.ADDWHO desc

select *
from @a',
      @execute_query_database = 'scprd',
      @body =  'Заблокированный товар 30 дней назад.',
      @subject = 'Заблокированный товар',
      @attach_query_result_as_file = 1,
      @query_attachment_filename = 'заблокированный товар.txt',
      @query_result_separator = ' ',
      @query_result_no_padding = 0;

в Studio отрабатывается, по шедулеру - вышеуказанная ошибка. Убираю запрос - всё ОК. Что не так в запросе? Временную таблицу делал, чтобы усечь количество символов полей.
24 апр 13, 08:04    [14221947]     Ответить | Цитировать Сообщить модератору
 Re: Отправка мыла с сервера с результатами запроса в теле письма  [new]
Ruuu
Member

Откуда: Иркутск
Сообщений: 4272
paldis
в Studio отрабатывается, по шедулеру - вышеуказанная ошибка. Убираю запрос - всё ОК. Что не так в запросе? Временную таблицу делал, чтобы усечь количество символов полей.
А под каким пользователем и в контексте какой БД вы выполняли этот запрос в студии? Возможно, у пользователя, под которым работает агент, нет прав на таблицы других БД из этого запроса.
Напишите еще SELECT @@Version
24 апр 13, 08:32    [14221976]     Ответить | Цитировать Сообщить модератору
 Re: Отправка мыла с сервера с результатами запроса в теле письма  [new]
paldis
Member

Откуда: Togliatti
Сообщений: 8
Версия Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Apr 2 2010 15:48:46 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
Выполнялось от имени пользователя SQLAdmin (администратор с правами, как у SA). Немного не та учётка... Переделал на себя (тоже права, как у SA), моя учётка включена в DatabaseMailUserRole. Вываливается ошибка Запрещено разрешение "EXECUTE" на объект "sp_send_dbmail" базы данных "msdb", схемы "dbo". [SQLSTATE 42000] (Ошибка 229). Шаг завершился с ошибкой. Где ещё проверить соответствие прав? Все разрешение в msdb облазил - везде админ, везде есть разрешения на отправку сообщений.
24 апр 13, 09:01    [14222020]     Ответить | Цитировать Сообщить модератору
 Re: Отправка мыла с сервера с результатами запроса в теле письма  [new]
paldis
Member

Откуда: Togliatti
Сообщений: 8
Выполняется в контексте базы SCPRD.
24 апр 13, 09:03    [14222025]     Ответить | Цитировать Сообщить модератору
 Re: Отправка мыла с сервера с результатами запроса в теле письма  [new]
Ruuu
Member

Откуда: Иркутск
Сообщений: 4272
paldis
Переделал на себя (тоже права, как у SA)
что-то это не вяжется с этим. Ваш логин точно в роли sysadmin?
paldis
Запрещено разрешение "EXECUTE" на объект "sp_send_dbmail" базы данных "msdb", схемы "dbo". [SQLSTATE 42000] (Ошибка 229).
Но можете попробовать дать права вашему пользователю явно
use msdb
go
grant execute on dbo.sp_send_dbmail to YOUR_USER_NAME
24 апр 13, 09:23    [14222069]     Ответить | Цитировать Сообщить модератору
 Re: Отправка мыла с сервера с результатами запроса в теле письма  [new]
paldis
Member

Откуда: Togliatti
Сообщений: 8
Да, моя учётка точно в роли sysadmin, сейчас ещё раз перепроверил. Таким способом давал права явно. Видимо есть ещё что-то.
24 апр 13, 10:07    [14222264]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить