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

Exportando suas tabelas para .csv via Posh

Para exportar os dados de sua tabela, existem algumas opções: SSIS BCP Export Data do SSMS Third Party Apps Powershell

05 dez. 2016 · 1 minuto · 20 palavras · Logan D. Merazzi

.ldf como datafile, e agora?

Em uma conversa, surgiu a dúvida: Quais as extensões o SQL Server usa nos arquivos? Por padrão (ou por convenção), usa-se a extensão .mdf para o arquivo primário, .ndf para os arquivos secundários e .ldf para os logs de transação. Até aí, tudo bem… Só que nada te impede de criar uma base com a extensão .zzz para os arquivos. E sim, o SQL vai trabalhar normalmente. Como isso é uma possibilidade, nada te impediria de criar um arquivo novo com a extensão .ldf e associar a um datafile (que, mais uma vez, “deveria” ser .mdf ou .ndf). O que vai acontecer? Pro SQL Server, nada. Mas isso pode dar um nó na cabeça do cidadão que eu vou te dizer…. Vamos a um caso real hipotético e como resolver… ...

09 nov. 2016 · 1 minuto · 133 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

Tratamento de Exceções, parte 3: RAISERROR & THROW

Esta é uma série de 3 posts (talvez, surja mais uma) onde eu quero tratar sobre tratamento de exceções dentro do SQL Server. Recomendo que sejam lidas as partes 1 e 2 da série, caso ainda não tenha feito, pois elas darão um bom embasamento sobre alguns pontos do que será dito neste terceiro post. Introdução ao tratamento de Exceções Tratamento de Exceções. Parte 2 Existem algumas forma de implementar o retorno do erro ao usuário: PRINT, SELECT, RAISERROR e THROW. Tudo vai depender de como a rotina está sendo implementada e de como a mensagem deve ser exibida para o usuário. ...

17 fev. 2016 · 1 minuto · 140 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