Job(email) de 1000 em 1000

07/10/2013

0

tem como fazer um job, por exemplo, toda vez que uma tabela chegar a 1000, 2000 registros o dba receber um e-mail?
Mariana Carvalho

Mariana Carvalho

Responder

Posts

05/11/2013

Mariana Carvalho

da nada nao... vc eh da casa... kkkkk

;-.b


ah ta certo.
Responder

27/12/2013

Leonardo Ferrareto

Uma procedure boa de email que achei

------------------------------------------------------------------------

SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

CREATE PROCEDURE [dbo].[sp_SQLNotify]
@From varchar(100) ,
@To varchar(100) ,
@Subject varchar(100)=" ",
@Body varchar(4000) = "Motley Fool Inc."
/*********************************************************************

This stored procedure takes the above parameters and sends an e-mail.
All of the mail configurations are hard-coded in the stored procedure.
Comments are added to the stored procedure where necessary.
Reference to the CDOSYS objects are at the following MSDN Web site:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cdosys/html/_cdosys_messaging.asp

***********************************************************************/
AS
Declare @iMsg int
Declare @hr int
Declare @source varchar(255)
Declare @description varchar(500)
Declare @output varchar(1000)

--************* Create the CDO.Message Object ************************
EXEC @hr = sp_OACreate 'CDO.Message', @iMsg OUT

--***************Configuring the Message Object ******************
-- This is to configure a remote SMTP server.
-- http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cdosys/html/_cdosys_schema_configuration_sendusing.asp
EXEC @hr = sp_OASetProperty @iMsg, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/sendusing").Value','2'
-- This is to configure the Server Name or IP address.
-- Replace MailServerName by the name or IP of your SMTP Server.
EXEC @hr = sp_OASetProperty @iMsg, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/smtpserver").Value', '10.1.1.10'

-- Save the configurations to the message object.
EXEC @hr = sp_OAMethod @iMsg, 'Configuration.Fields.Update', null

-- Set the e-mail parameters.
EXEC @hr = sp_OASetProperty @iMsg, 'To', @To
EXEC @hr = sp_OASetProperty @iMsg, 'From', @From
EXEC @hr = sp_OASetProperty @iMsg, 'Subject', @Subject

-- If you are using HTML e-mail, use 'HTMLBody' instead of 'TextBody'.
EXEC @hr = sp_OASetProperty @iMsg, 'TextBody', @Body
EXEC @hr = sp_OAMethod @iMsg, 'Send', NULL

-- Sample error handling.
IF @hr <>0
select @hr
BEGIN
EXEC @hr = sp_OAGetErrorInfo NULL, @source OUT, @description OUT
IF @hr = 0
BEGIN
SELECT @output = ' Source: ' + @source
PRINT @output
SELECT @output = ' Description: ' + @description
PRINT @output
END
ELSE
BEGIN
PRINT ' sp_OAGetErrorInfo failed.'
RETURN
END
END

-- Do some error handling after each step if you need to.
-- Clean up the objects created.
EXEC @hr = sp_OADestroy @iMsg

PRINT 'Mail Sent!'



GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
Responder

27/12/2013

Isaac Jose

mas a melhor opção não seria a edição developer?



so pra frisar uma coisa que vi certa vez em um cliente...
o mesmo precisava fazer algo que so era permitido na versao enterprise e claro na developer. como ele nao tinha a enterprise o pessoal fez o caminho obvio e intalou a developer.
e jogou em ambiente de produção..
o problema é que o developer nao pode entrar em produção por questoes de direitos da Fabricante.
portanto achei relevante comentar caso tenha alguem que nao saiba,,e ou o utilize em producao rsrs...

abraços
Responder

28/12/2013

Mariana Carvalho

interessante, evite problemas quanto a isso.
Responder

03/01/2014

João Françozo

BOA TARDE MARIANA

TENHO ISSO VEJA A CONFIGURAÇÃO ABAIXO O DATABASE EMAIL. EU USO EM ALGUNS CLIENTES.


--** Como configurar o Database Mail para envio de e-mail pelo SQLSERVER 2005
--1)Abrir base MSDB
USE MSDB
GO

--2)Habilitando o Database Mail
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Database Mail XPs', 1;
GO
RECONFIGURE;
GO

--3) -- Criação do Perfil
EXEC msdb.dbo.sysmail_add_profile_sp
@profile_name = 'Atak0',
@description = 'Esse perfil será utilizado para envio de e-mails';


--4) -- Criação da Conta
EXEC msdb.dbo.sysmail_add_account_sp
@account_name = 'jtassoli@atak.com.br',
@description = 'Essa é a conta principal para o envio de e-mails SqlServer',
@email_address = 'jtassoli@atak.com.br',
@display_name = 'envio automatico de ntsativo',
@replyto_address = 'jtassoli@atak.com.br',
@mailserver_name = 'mail.atak.com.br',
@port = 110;

--5) -- Vinculação da Conta ao Perfil
EXEC msdb.dbo.sysmail_add_profileaccount_sp
@profile_name = 'Atak0',
@account_name = 'jtassoli@atak.com.br',
@sequence_number = 1;

EXEC sysmail_verify_principal_sp

--6) -- Concedendo a permissão de um usuário ao Perfil
EXEC msdb.dbo.sysmail_add_principalprofile_sp
@profile_name = 'Atak0',
@principal_name = 'dbo',
@is_default = 1;



--7) -- Enviando um e-mail simples
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Atak0',
@recipients = 'jtassoli@atak.com.br',
@body = 'Se você receber esse e-mail, o recurso Database Mail está funcionando',
@subject = 'Verificação do Recurso Database Mail'


--8) -- Enviando o resultado de uma Query em Anexo
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Atak0',
@recipients ='jtassoli_@hotmail.com',
@body = 'SEGUE ANEXO PRODUTOS COM ESTOQUE BAIXO',
@subject = 'PRODUTOS PARA COMPRA DO ALMOXARIFADO',
@query = 'select * from satkcastanhal..tbramo',
@attach_query_result_as_file = 1,
@query_attachment_filename = 'produtos.txt'



---
--Algumas stored procedure
--para verificar se o serviço está startado
EXEC msdb.dbo.sysmail_help_status_sp ;
--para parar o serviço
sysmail_stop_sp
--para comercar o serviço
sysmail_start_sp
--para verificar o log
SELECT * FROM msdb.dbo.sysmail_event_log ;

------------------------------------------------------------------------------------------------------------------------------

AI FIZ UMA PROCEDURE ( Envia_email_espelho_pedido_compra400)


---------------------------------------------------------------------------------------------------------------------------

APÓS ISSO FIZ UMA TRIGGER QUE VERIFICA OS DOCUMENTOS BLOQUEADOS E ATUALIZADOS, E CHAMA A PROCEDURE PARA ENVIAR O E-MAIL.


CREATE TRIGGER [dbo].[tiLogOperacao] on [dbo].[tbLogOperacao]
FOR INSERT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

-- Insert statements for trigger here
declare @cf char(9);

-- Insert statements for trigger here

Select @cf=Chave_fato from Inserted novo
where
cod_rotina='MOV016' and abreviatura_operacao IN('DESBLOQ') and
--Observacao like '%atualização automática%' and
Observacao like '%APE%';
if @@Rowcount<>0
Exec [dbo].[Envia_email_espelho_pedido_compra400] @Chave_fato = @cf;



END

GO

-----------------------------------------------------------------------------------------------------------------------

Acho que te ajuda isso.


Responder

03/01/2014

Mariana Carvalho

esse funciona de acordo com Job(email) de 1000 em 1000?
Responder

03/02/2014

Alex Lekao

Oi Mariana, boa noite!!!

VC conseguiu o que queria?

Deixa so eu entender mais um pouco, pq esse seu problema nao saiu de minha lembranca desde a criacao do post.

Vc precisa de um job que qdo a tabela, comecando sem nenhum registro envie um e-mail para o DBA avisando que ela atingiu 1000 registros, e qdo ela atingir 2000 registros um novo email correto?

Estive pensando que talves seja necessario criar uma tabela para esse tipo de monitoria, pq nao consigo pensar em um laco que seja possivel usar os registros para considerar que sejam superiores a mil e proceder com o envio do email.

ja pensei em calculos matematicos para tentar fazer esse laco e possibilitar o envio sem a criacao de uma tabela para monitorar, mas ate o momento nao consegui.

Se vc tiver alguma coisa deste tipo que possamos usar para tentar ajudar a montar alguma coisa, seria interessante.

Eu ja estou usando envio de emails, fazendo o uso do job, so que o meu eh o envio de um arquivo csv de um cadastro de produtos para um parceiro.

Vamos ver se conseguimos algo que atenda a sua necessidade.

encontrei alguns codigos e tal para monitoria diversas, mas especificamente do jeito q vc precisa nao tem.

vamos tentar amadurecer mais e tentar ver o que conseguimos.

Abraco.

Alex - Lekao
Responder

05/02/2014

Mariana Carvalho

ah priori sim, queria entender mais ou menos a ideia, e ficou bem clara.

sobre os codigos, sem cerimonias, pode colocar. rsrsrs
Responder

06/02/2014

Rafael Dantas

Estou acompanhando este tópico, estou com um pequeno problema referente a envio de xml por e-mail, e estou estudando mais sobre envio de e-mail pelo SQL Server, coisa que não conhecia bulhufas...
Responder

06/02/2014

Alex Lekao

ah priori sim, queria entender mais ou menos a ideia, e ficou bem clara.

sobre os codigos, sem cerimonias, pode colocar. rsrsrs


Oi Mariana, nao entendi... rssr

to meio lesado hoje... leeeento... rssr
Responder

06/02/2014

Alex Lekao

Estou acompanhando este tópico, estou com um pequeno problema referente a envio de xml por e-mail, e estou estudando mais sobre envio de e-mail pelo SQL Server, coisa que não conhecia bulhufas...


Oi Rafael, eh legal viu..

funciona direitinho...

eu estou usando com arquvio CSV, para xml muda um pouco a estrutura, pq vc tera que montar um pouco diferente, acho que nao eh o colocar o nome do arquivo e tal.

Mas funciona balinha.

Dependendo de como for, abre um topico e a galera vai cair em cima para te ajudar.

Abraco.

Alex - Lekao
Responder

06/02/2014

Fabiano Carvalho

Não li o tópico todo (preguiça)

Voce pode criar uma trigger para que quando inserir verifica o modulo (resto da divisão), divide a quantidade por 1000, e ai dispara o e-mail. (gambiarra)
Responder

06/02/2014

Alex Lekao

Opa Fabiano...

acho que o caminho ta surgindo... rsrsr

usar a Funcao MOD(), se nao me engano eh essa certo.

mas se o resto de divisao for 1000 certo?
Responder

06/02/2014

Mariana Carvalho

ah priori sim, queria entender mais ou menos a ideia, e ficou bem clara.

sobre os codigos, sem cerimonias, pode colocar. rsrsrs


Oi Mariana, nao entendi... rssr

to meio lesado hoje... leeeento... rssr


deixa pra lá.
Responder

06/02/2014

Mariana Carvalho

Não li o tópico todo (preguiça)

Voce pode criar uma trigger para que quando inserir verifica o modulo (resto da divisão), divide a quantidade por 1000, e ai dispara o e-mail. (gambiarra)


hahahaha...essa foi otima...tb sinto isso...as vezes.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar