CORRECÇÃO: Falha no envio relatório de manutenção por correio electrónico para o operador no plano de manutenção

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.

279867
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
N.º DE BUGS: 351140 (SHILOH_BUGS)
Sintomas
Um plano de manutenção da base de dados do SQL Server inclui uma opção para enviar um relatório de manutenção (ou seja, um ficheiro que contém os resultados para a execução do plano de manutenção) por um operador predefinido no servidor de correio electrónico. O ficheiro de relatório de manutenção para o operador de correio electrónico poderá falhar com a seguinte mensagem de erro, que pode ser encontrada no relatório de manutenção para o plano de manutenção da base de dados:
Erro 18025: [Microsoft] [ODBC SQL Server controlador] [servidor SQL] xp_sendmail: falhou com o correio erro 0 x 80004005
Este erro não afecta os relatórios do estado da tarefa; a tarefa propriamente dito é mostrada como com êxito.
Causa
xp_sendmail procedimento armazenado expandido falha com o erro acima quando tentar enviar um ficheiro aberto como um anexo de correio electrónico. Sqlmaint.exe executa o plano de manutenção e escreve resultado no ficheiro de relatório. O passo final a manutenção de plano, que irá enviar uma mensagem de correio electrónico, também é registado no relatório. Ainda porque o ficheiro de relatório é aberto quando xp_sendmail tentar enviar como anexo, o tentativa falhar.
Resolução
Para resolver este problema, obtenha o service pack mais recente do SQL Server 2000. Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
290211INF: How to Obtain the Latest SQL Server 2000 Service Pack
Como contornar
Para uma solução para este problema, consulte a secção "Mais informação" deste artigo.
Ponto Da Situação
A Microsoft confirmou que este é um problema no SQL Server 2000. Este problema foi corrigido pela primeira vez no SQL Server 2000 Service Pack 1.
Mais Informação
Para contornar este problema, pode incluir o script abaixo como um passo de tarefa adicional na tarefa de última criado por um determinado plano de manutenção. Este script abaixo envia o último ficheiro de relatório para um plano de manutenção específico para um endereço de correio electrónico especificado.

Para utilizar esta solução alternativa, siga estes passos:
  1. Identificar o último trabalho para o plano de manutenção.
  2. Clique com o botão direito do rato a tarefa, clique em Propriedades , faça clique sobre os passos , seleccione o passo e, em seguida, clique em Editar .
  3. Na caixa de diálogo Editar passo de projecto , clique no separador Avançadas .
  4. Definido em acção com êxito para Ir para o passo seguinte .
  5. Clique em OK na caixa de diálogo Editar passo de projecto .
  6. Clique em Novo para adicionar um passo de novo e atribua o passo um nome. o tipo deve ser Script Transact-SQL (TSQL) e da base de dados deve ser principal .
  7. Cole o script seguinte na janela de comandos:
    declare @planname varchar(100)declare @dir varchar(200)declare @operator varchar(50)declare @cmd varchar (200)declare @mailfilename varchar(200)declare @filenamelen int--Values set here can actually be provided as parameters to a stored procedure.--If provided as parameters to a stored procedure, rem the following select statements.--@plananme is the plan whose maintenance report is sent.--@dir is the log directory for SQL Server. It is the directory to which the --maintenance report files are written. --@operator is the email address of the person to whom the report file should be mailed.select @planname = 'Database Maintenance Plan 1'select @dir ='c:\Program Files\Microsoft SQL Server\MSSQL$SQL2K1\LOG'select @operator ='email@domain.com'--You can automatically set the above by reading various values from SQL Server.SET NOCOUNT ONIF RIGHT (@dir, 1) <> '\' beginselect @dir =@dir +'\'endSELECT @dir = 'dir /s /b '+'"'+@dir + @planname+'*.txt'+'"' +' >c:\dir.txt'create table #TMP_MAINT_FILENAMES (NAME1 varchar(8000))exec xp_cmdshell @dirBULK INSERT #TMP_MAINT_FILENAMES   FROM 'c:\dir.txt'   WITH       (         ROWTERMINATOR = '\n'      )select @mailfilename=MAX(name1) from #TMP_MAINT_FILENAMESprint 'The following file is being sent as an atachement'print @mailfilename--Set the various parameters for xp_sendmail.declare @tmpmessage varchar(300)declare @tmpsubject varchar(300)select @tmpmessage = 'This is the last maintenance report on the server for the maintenance plan '+@plannameselect @tmpsubject = 'SQL Server Maintenance Report for '+@planname--Send the last file for the maintenance plan.exec master..xp_sendmail @recipients= @operator, @subject =@tmpsubject, @message=@tmpmessage, @attachments= @mailfilename--Perform cleanup here.drop table #TMP_MAINT_FILENAMESexec master..xp_cmdshell "del c:\dir.txt"SET NOCOUNT OFF					
  8. Certifique-se que os valores @ planname, @ dir e @ operador estão definidos no script.
  9. Guarde o passo de tarefa.
A Microsoft fornece exemplos de programação apenas, para fins sem garantia expressa ou implícita. Isto inclui, mas não está limitado a, as garantias implícitas de comercialização ou adequação a um fim específico. Este artigo pressupõe que está familiarizado com a linguagem de programação apresentada e as ferramentas que são utilizadas para criar e depurar procedimentos. Os técnicos de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas não modificarão estes exemplos para proporcionarem funcionalidades adicionais nem criarão procedimentos adaptados às necessidades específicas do utilizador.

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 279867 - Última Revisão: 01/16/2015 21:08:50 - Revisão: 5.2

  • Microsoft SQL Server 2000 Standard Edition
  • kbnosurvey kbarchive kbmt kbbug kbfix kbsqlserv2000sp1fix KB279867 KbMtpt
Esta informação foi útil?