Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
280
Assunto : SQL Server
Titulo: Transferindo mensagens de erro para outro servidor

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :

Translate this page now :






Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon



Conforme é mostrado no treinamento de SQL Server existem vantagens em se cadastrar no servidor todas as mensagens de erro personalizadas disparadas por stored procedures, pois dessa forma o administrador do banco tem a liberdade de criar ações personalizadas ligadas a tais mensagens de erro.

Mas isso traz um problema : Depois de desenvolvidas as mensagens de erro e as procedures como transferir as mensagens de erro do servidor de desenvolvimento para o servidor de produção ?

Não existe como transformar as mensagens de erro em scripts que permitam sua criação em outro servidor, pelo menos não automaticamente. Mas podemos recorrer às tabelas de sistema e criar nós mesmos uma instrução SQL que faça a montagem do script de criação das mensagens de erro.

Para criar uma mensagem de erro via script utiliza-se a procedure sp_addmessage. Então podemos fazer um select nas tabelas de sistema sysmessages e syslanguages (mensagens de erro e linguagens das mensagens) para gerarmos dinamicamente o código para executar a sp_addmessage.

Veja como fica :

select 'exec sp_addmessage ' +
'@msgnum=' + convert(varchar,error) + ',' +
'@severity=' + convert(varchar,severity) + ',' +
'@msgtext=''' + description + ''',' +
'@lang=''' +
(select top 1 alias from syslanguages b where msglangid=a.msglangid) + ''''
from sysmessages a

Como as mensagens de erro do usuário estão sempre acima de 50000 podemos fazer uma filtragem na instrução acima para que gere o script apenas destas mensagens.

Outra questão interessante é que em um servidor podemos ter diversas aplicações utilizando conjuntos de mensagens de erro diferentes. Então podemos inserir essa instrução SQL em uma procedure que receba como parâmetro a faixa de mensagens de erro que deve ser "scriptada".

Veja como fica :

Create procedure sp_GeraScriptMensagens @numinicio int=0,
@numfinal int =0
AS
select 'exec sp_addmessage ' +
'@msgnum=' + convert(varchar,error) + ',' +
'@severity=' + convert(varchar,severity) + ',' +
'@msgtext=''' + description + ''',' +
'@lang=''' +
(select top 1 alias from syslanguages b where msglangid=a.msglangid) + ''''
from sysmessages a
where ( (@numinicio=0 and error>50000) or (@numinicio<>0 and error >=@numinicio) )
AND (@numfinal=0 or error<=@numfinal)

Assim sendo se utilizarmos :

sp_gerascriptmensagens

Estaremos gerando o script de todas as mensagens de erro personalizadas mas se utilizarmos :

sp_gerascriptmensagens 50100,50200

Então estamos gerando o script de todas as mensagens entre 50100 e 50200


Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
data: 1/31/2017 10:47:00 AM
nome: sGIutZCUjPNUUF
email: derby451@hotmail.com
comentário:
AbjQHX http://www.y7YwKx7Pm6OnyJvolbcwrWdoEnRF29pb.com

data: 1/29/2017 8:04:00 AM
nome: fSOjOpOdGPLfplF
email: jogcbfn@hotmail.com
comentário:
90sS5g http://www.y7YwKx7Pm6OnyJvolbcwrWdoEnRF29pb.com

data: 1/29/2017 7:57:00 AM
nome: tIJRPwrsmVxXLV
email: derby451@hotmail.com
comentário:
ZrK5wY http://www.y7YwKx7Pm6OnyJvolbcwrWdoEnRF29pb.com

data: 12/31/2016 1:00:00 AM
nome: QmqsYSgGmDYRSK
email: jfvynms4281rt@hotmail.com
comentário:
10aFGq http://www.FyLitCl7Pf7ojQdDUOLQOuaxTXbj5iNG.com

data: 12/29/2016 8:03:00 AM
nome: MrsjGMyneFb
email: jfvynms4281rt@hotmail.com
comentário:
aG3NTZ http://www.FyLitCl7Pf7ojQdDUOLQOuaxTXbj5iNG.com

 1  
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br