Evitando a execução de uma trigger sem precisar desabilitá-la

Olá pessoal! Gostaria hoje de dar uma dica para quem precisa executar aquele INSERT / UPDATE / DELETE sem disparar a trigger para a tabela… E sem precisar desabilitá-la! Observação: Você vai precisar alterar a trigger para que funcione, disso você não ter como escapar. ...

30 ago. 2017 · 1 minuto · 202 palavras · Logan D. Merazzi

Divisão de decimal com inteiro, como ficam as casas decimais?

Surgiu a seguinte dúvida no trabalho esse dias que foi mais ou menos assim: Tenho duas colunas e estou realizando uma divisão entre elas. Qual vai ser o tipo retornado? O SQL Server segue a ordem de precedência do tipo do dado? De bate pronto, a resposta é um “Sim, ele sempre vai seguir a ordem de precedência e vai retornar o tipo de dado que você está usando que possui maior precedência.” Porém (sempre tem um porém), isso não é valido para os tipos decimais. ...

03 ago. 2017 · 3 minutos · 543 palavras · Logan D. Merazzi

Trigger: Update() no campo com o mesmo valor, é validado?

Post rápido depois de meses de inércia e blog fora do ar, agora sob novo domínio! Surgiu uma dúvida onde eu trabalho e eu achei interessante postar aqui um caso de exemplo para futura referência. A questão: “Se eu fizer um update em uma coluna, mas usando o mesmo valor, o SQL executa a trigger, ok. Mas a função UPDATE(coluna) é validada? O SQL não é inteligente o suficiente para ignorar o update, uma vez que o campo é o mesmo?” Se quiser parar por aqui, a resposta é um singelo e simples: Não. Agora, se quiser ver o caso funcionando… ...

23 mai. 2017 · 2 minutos · 324 palavras · Logan D. Merazzi

#WTF: “The UserLog directory in the registry is not valid.”

Essa entra pra série #WTF (Vivendo e aprendendo). Ao instalar o Full Text Search em um dos nossos servidores, me deparei com o warning a seguir: ![](/images/2016/08/ERRO1.png)What!? The User Log directory in the registry is not valid. Verify DefaultLog Key under the instance hive points to a valid directory ...

09 ago. 2016 · 2 minutos · 229 palavras · Logan D. Merazzi

Valide seus backups com a prRestore

EDIT O script foi atualizado! Versão 2.0 saindo do forno!! Agora é possível usar o script para restaurar o último diferencial criado também… E os logs, obviamente, respeitarão a opção. Baixe aqui! FIM DO EDIT Se você perguntar para “N” profissionais qual o principal bem das empresas, a resposta será praticamente a mesma: Os dados que ela possui (e se você achava que era o próprio funcionário, sinto te desiludir). E para garantir que os seus dados estejam sempre prontos para serem recuperados em caso de desastre, basta você fazer o backup dela periodicamente, seguindo uma politica que te permita recuperá-la em um ponto no tempo (eu recomendo ler sobre a procedure criada pelo Edvaldo Castro sobre o assunto), correto?? ...

06 jul. 2016 · 3 minutos · 633 palavras · Logan D. Merazzi

Restaurando um banco apenas com o .mdf

Surgiu uma solicitação para eu restaurar um banco. Até aí, tudo ok, é um processo normal. RESTORE DATABASE Blábláblá, permissões dadas e assunto encerrado. Ao ver o arquivo, havia apenas um .mdf. Ou seja, não é mais um restore, é um ATTACH. Seria outro processo normal também… Se existissem os arquivos de log (.ldf). Ao tentar restaurar, o seguinte erro surgiu: File activation failure. The physical file name “C:\Caminho\Original\do\banco\arquivo_log.LDF” may be incorrect. The log cannot be rebuilt because there were open transactions/users when the database was shutdown, no checkpoint occurred to the database, or the database was read-only. This error could occur if the transaction log file was manually deleted or lost due to a hardware or environment failure. Mas vamos lá, passo a passo, para vermos os problemas que podem aparecer e como resolver. ...

24 mai. 2016 · 3 minutos · 587 palavras · Logan D. Merazzi

Acessando um banco MySQL pelo SQL Server via Linked Server

Surgiu uma demanda onde era necessário migrar algumas tabelas de alguns bancos em MySQL para dentro do SQL Server e tínhamos disponível apenas o backup (a.k.a. dump) dos bancos de origem. Realizar o tratamento do arquivo (manualmente) para que fosse possível criar os bancos e inserir os dados estava fora de cogitação. Como temos uma VM com o Linux (Ubuntu) e com o MySQL instalado, optei por realizar a criação de um Linked Server entre os dois servidores. ...

16 nov. 2015 · 3 minutos · 510 palavras · Logan D. Merazzi

Tratamento de Exceções. Parte 2

Essa é a parte 2 de uma série de 3 posts (ou 4, quem sabe), onde eu quero falar sobre as formas de realizar o tratamento de exceções no SQL Server. Se você caiu aqui por acaso, sugiro antes dar uma olhada na parte 1 da série, onde eu trato de alguns detalhes no que diz respeito à forma que o SQL Server realiza o encerramento de processos, nos casos de erro. Hoje irei falar sobre como realizar o tratamento de exceções, via TRY / CATCH. ...

10 nov. 2015 · 4 minutos · 798 palavras · Logan D. Merazzi

Introdução ao tratamento de Exceções

O seu código vai dar erro. Isso é um fato. Mesmo que seja a pessoa mais cuidadosa do mundo, você tem que preparar o seu código para o pior: O bug! Até porque no momento que os erros aparecerem, você vai precisar verificar o que está ocorrendo e ajustar da forma mais rápida possível. E tem outra: Ninguém gosta de rodar uma aplicação e dar de cara com uma tela exibindo o stack do erro. E para isso, você deve tratar as exceções que o teu código pode gerar. Mas antes de entrar no assunto de tratamento de erros, primeiramente, gostaria de alinhar algumas ideias… Esse será o primeiro de uma série de 2 ou 3 posts, veremos como ficará o próximo, pois este já ficou consideravelmente grande. ...

03 nov. 2015 · 5 minutos · 915 palavras · Logan D. Merazzi

Alterando o schema de objetos em lote

Não vou entrar aqui no mérito do que são os schemas e como especificamos (deixemos isso para um outro momento). Quero apenas deixar o seguinte cenário: Um usuário criou uma série de scripts e, ao aplicá-lo no banco, todos os objetos ficaram com o nome do usuário no schema: usuário.procedure, usuario.function, usuario.table Como ajustar isso, sem que seja necessário abrir cada objeto individualmente e colocar no schema correto (vamos usar o schema dbo aqui, para simplificar as coisas)? ...

28 out. 2015 · 2 minutos · 282 palavras · Logan D. Merazzi