Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Отправка на почту текст запроса  [new]
PavelAA
Member

Откуда:
Сообщений: 121
Задача состоит в следующем, нужно отправлять на несколько электронных адресов текст выполняемого запроса в определенное время. Почитав в гугле нашел как отправить почту через EXEC master.dbo.xp_sendmail , вопрос как указать время отправки и как вставить результат запроса.

EXEC master.dbo.xp_sendmail
@recipients=user1@Adventure-Works.com;user2@Adventure-Works.com',
@message=ttttt',
@subject=tema;

P.S. Я так понял @query отправляет результат, тока как вставить конструкцию с select :(
З.Ы. Ну и с заданным временем оч интересный вопрос)
7 апр 13, 11:57    [14146831]     Ответить | Цитировать Сообщить модератору
 Re: Отправка на почту текст запроса  [new]
mag2000
Member

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

1. Посмотрите Пример Б. по этой ссылке:
http://msdn.microsoft.com/ru-ru/library/ms190307.aspx

2. Для отправки результата запроса в определённое время, можно вызов процедуры exec msdb.dbo.sp_send_dbmail .....
поместить в Job, в котором настроить периодичность выполнения процедуры.
7 апр 13, 12:21    [14146892]     Ответить | Цитировать Сообщить модератору
 Re: Отправка на почту текст запроса  [new]
PavelAA
Member

Откуда:
Сообщений: 121
Можно пожалуйста поподробнее по 2 пункту, по первому спасибо)
7 апр 13, 12:25    [14146897]     Ответить | Цитировать Сообщить модератору
 Re: Отправка на почту текст запроса  [new]
mag2000
Member

Откуда:
Сообщений: 182
PavelAA
Можно пожалуйста поподробнее по 2 пункту, по первому спасибо)


У SQL Server имеется специальный компонент (сервис) SQL Agent, который позволяет выполнять запланированные действия на SQL сервере (и не только).
Сервис SQL Agent должен быть установлен на сервере (там же, где и SQL сервере) и запущен.

С помощью SSMS необходимо создать Job, в котором вы укажите вызов вашей процедуры отправки почты и настрите расписание выполнения этого Job-а.

Как это делать посмотрите тут:
http://msdn.microsoft.com/ru-ru/library/ms190268.aspx
7 апр 13, 12:34    [14146913]     Ответить | Цитировать Сообщить модератору
 Re: Отправка на почту текст запроса  [new]
NewUser18
Member

Откуда:
Сообщений: 3
а не подскажите как в @query путь прописывается? на кавычки ругается!
8 апр 13, 15:51    [14152191]     Ответить | Цитировать Сообщить модератору
 Re: Отправка на почту текст запроса  [new]
Glory
Member

Откуда:
Сообщений: 104760
NewUser18
а не подскажите как в @query путь прописывается?

В @query прописывается текст запроса, а не путь
8 апр 13, 15:55    [14152221]     Ответить | Цитировать Сообщить модератору
 Re: Отправка на почту текст запроса  [new]
NewUser18
Member

Откуда:
Сообщений: 3
знаю, сам с таким не сталкивался) у меня просто в запросе присутствует select * from tableT where Lower('Е:\Files\LoadFiles\' + rm.filename) =Lower(rm.filename))
8 апр 13, 16:03    [14152284]     Ответить | Цитировать Сообщить модератору
 Re: Отправка на почту текст запроса  [new]
Glory
Member

Откуда:
Сообщений: 104760
NewUser18
у меня просто в запросе присутствует

Если уже присутствует, то какие проблемы ?
А если вы хотите прописать строковую константу с одинарными кавычками внутри, то каждая одинарная кавычка экранируется еще одной одинарной кавычкой
8 апр 13, 16:07    [14152328]     Ответить | Цитировать Сообщить модератору
 Re: Отправка на почту текст запроса  [new]
NewUser18
Member

Откуда:
Сообщений: 3
спасибо, помогло, только пишет теперь Invalid object name 'dbo.fnGetDirFiles'
8 апр 13, 16:22    [14152473]     Ответить | Цитировать Сообщить модератору
 Re: Отправка на почту текст запроса  [new]
Glory
Member

Откуда:
Сообщений: 104760
NewUser18
спасибо, помогло, только пишет теперь Invalid object name 'dbo.fnGetDirFiles'

Указывайте правильное имя объекта. И в правильной базе
8 апр 13, 16:26    [14152511]     Ответить | Цитировать Сообщить модератору
 Re: Отправка на почту текст запроса  [new]
PavelAA
Member

Откуда:
Сообщений: 121
Чтобы не плодить темы, отпишусь здесь. С вопросами выше разобрался, но появился другой, как задать определение папки на диске.
Есть таблица dbo.SYS_TABLE_CONSTANT, где есть поле Value со значением E:\Files\
Мне вот это надо проверять на размер диска. До чего дошел я...

create table #FreeSpace(
Drive char(1),
MB_Free int)

insert into #FreeSpace exec xp_fixeddrives

declare @MB_Free int
select @MB_Free = MB_Free from #FreeSpace where Drive = 'E'

if @MB_Free < 1024
exec msdb.dbo.sp_send_dbmail
///
///
Как указать вот этот пусть для проверки места E:\Files\
11 апр 13, 11:36    [14166073]     Ответить | Цитировать Сообщить модератору
 Re: Отправка на почту текст запроса  [new]
PavelAA
Member

Откуда:
Сообщений: 121
Нет вариантов? :(
11 апр 13, 13:12    [14166767]     Ответить | Цитировать Сообщить модератору
 Re: Отправка на почту текст запроса  [new]
Glory
Member

Откуда:
Сообщений: 104760
PavelAA
Как указать вот этот пусть для проверки места E:\Files\

А чем место в E:\Files\ отличается от места в E:\ ?
11 апр 13, 13:26    [14166864]     Ответить | Цитировать Сообщить модератору
 Re: Отправка на почту текст запроса  [new]
PavelAA
Member

Откуда:
Сообщений: 121
Glory, серверная папка.
11 апр 13, 13:29    [14166887]     Ответить | Цитировать Сообщить модератору
 Re: Отправка на почту текст запроса  [new]
Glory
Member

Откуда:
Сообщений: 104760
PavelAA
Glory, серверная папка.

И что ?
Размер свободного места в E:\Files\ отличается от E:\ ?
11 апр 13, 13:31    [14166906]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить