--exec P_TYAN_SERVICE_SITE_CHECK
ALTER Процедура [dbo].[P_TYAN_SERVICE_SITE_CHECK]
Как
Объявить
@count целое число,
@объект целое,
@hr int,
@rc интервал,
@вывод varchar(400),
@description варчар (400),
@источник varchar(400),
@отправитель варчар(50),
@имя отправителя varchar(50),
@serveraddress varchar(255),
@recipient varchar(255),
@recipientName varchar(255),
@subject varchar(255),
@mailbody varchar(8000)
--Автоматическое начало электронной почты
выберите @count= count(*) из [dbo].[TYAN_SERVICE_SITE], где область не равна нулю, имя_cust не имеет значения NULL, местоположение_корабля не равно NULL, страна не равна NULL, а cust_no не имеет значения NULL и (CUST_TYPE имеет значение NULL или SERVICE_SITE имеет значение NULL. )
если(@count!=0)
начинать
Установите @sender='Автопочта'
Установите @sendername='AutoMail'
Установите @serveraddress='10.98.0.211'
--Вот адрес получателя. Эта переменная кажется бесполезной, поэтому добавьте ее непосредственно в конец. Просто посмотрите ниже-------
Установите @recipient =''
--заголовок----------------
Установите @subject='Почта'
-------Вот данные, которые вы хотите отобразить. Начало ---------------------
Установите @mailbody=N'<html><head>
</head><body>
<p style="margin-bottom:12.0pt"><font size=1 face=Arial><span
lang=EN-US style="font-size:9.0pt;font-family:Arial">Уважаемый сэр:<o:p></o:p></span></font></p>
<p style="margin-bottom:12.0pt"><font size=1 face=Arial><span
lang=EN-US style="font-size:9.0pt;font-family:Arial">Пожалуйста, сохраните эти новые Tyan
Сайт службы:<o:p></o:p></span></font></p>
<table style="font-family:trebuchet ms;font-size: 10pt; border-collapse:collapse" cellpadding="2" bordercolor="black" border=1>
<tr bgcolor=orange align=center>
<td >ОБЛАСТЬ</td>
<td >СТРАНА</td>
<td >CUST NO</td>
<td>ИМЯ ПОЛЬЗОВАТЕЛЯ</td>
</tr>'
--<td align=left>Название отдела</td>
Объявить
@str varchar(8000),
@AREA nvarchar(50),
@COUNTRY varchar(50),
@CUST_NO варчар(50),
@CUST_NAME varchar(50),
@vcount целое число
начинать
установите @vcount=1
установите @str=''
Объявить курсор c_at
ДЛЯ
выберите отдельную область, страну,cust_no,cust_name из [dbo].[TYAN_SERVICE_SITE], где область не равна нулю, cust_name не равна нулю, а местоположение_корабля не равно нулю, страна не равна нулю, а cust_no не равна нулю и (CUST_TYPE имеет значение null или SERVICE_SITE нулевой )
ОТКРЫТЬ c_at
FETCH NEXT FROM c_at INTO @AREA,@COUNTRY,@CUST_NO,@CUST_NAME
ПОКА (@@FETCH_STATUS = 0)
НАЧИНАТЬ
set @str=@str+'<tr align=center>'
set @str=@str+'<td >'+@AREA+'</td>'
set @str=@str+'<td >'+@COUNTRY+'</td>'
set @str=@str+'<td >'+@CUST_NO+'</td>'
set @str=@str+'<td >'+@CUST_NAME+'</td>'
установите @vcount=@vcount+1
FETCH NEXT FROM c_at INTO @AREA,@COUNTRY,@CUST_NO,@CUST_NAME
КОНЕЦ
-------Вот данные, которые вы хотите отобразить ---------------------
ЗАКРЫТЬ c_at
ВЫДЕЛИТЬ c_at
конец
Установите @mailbody = @mailbody+@str+'</table></body></html>'
Exec @hr = sp_OACreate 'jmail.message', @object OUTPUT
Exec @hr = sp_OASetProperty @object, 'Кодировка', 'BIG5'
--@recipient --Адрес электронной почты вашего получателя---------------------------------------- ----- ---------------
Exec @hr = sp_OAMethod @object, 'AddRecipient',NULL,'ваш почтовый адрес'
--Exec @hr = sp_OAMethod @object, 'AddRecipientBCC',NULL,'ваш почтовый адрес'
Exec @hr = sp_OASetProperty @object, 'Subject',@subject
Exec @hr = sp_OAsetProperty @object, 'HTMLBody', @mailbody
Exec @hr = sp_OAsetProperty @object, 'Priority', 1
Если нет, @sender имеет значение null
Exec @hr = sp_OASetProperty @object, 'От', @sender
Если нет, то @sendername имеет значение null.
Exec @hr = sp_OASetProperty @object, 'FromName', @sendername
--Автоматическое начало электронной почты
Exec @hr = sp_OAMethod @object, 'Отправить', null, @serveraddress
Exec @hr = sp_OAGetErrorInfo @object, @source OUTPUT, @description OUTPUT
если (@hr = 0)
Начинать
Установите @output='Источник ошибки: '+@source
Печать@вывод
Выберите @output = 'Описание ошибки:' + @description.
Печать@вывод
Конец
Еще
Начинать
Печать 'Не удалось получить информацию об ошибке! '
Возвращаться
Конец
--Освободить объект JMail.Message
EXEC @hr = sp_OADestroy @object
--IF @hr <> 0
--НАЧИНАТЬ
-- EXEC sp_OAGetErrorInfo @object
-- ВОЗВРАЩАТЬСЯ
--КОНЕЦ
конец
Вышеупомянутая хранимая процедура завершена,
Прилагается открытие процедур автоматизации Ole.
---Открытые процедуры автоматизации----
sp_configure 'показать дополнительные параметры', 1;
ИДТИ
ПЕРЕКОНФИГУРИРОВАНИЕ;
ИДТИ
sp_configure «Процедуры автоматизации Ole», 1;
ИДТИ
ПЕРЕКОНФИГУРИРОВАНИЕ;
ИДТИ
Вы можете использовать его после внесения небольших изменений на основе ваших собственных данных. Отправка электронной почты обычно используется вместе с заданием агента сервера SQL для регулярной отправки электронной почты.
Эта статья взята из блога CSDN. При перепечатке указывайте источник: http://blog.csdn.net/liaolian9948/archive/2009/12/31/5110313.aspx.
-