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 tentarContinue lendo

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)Continue lendo

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 respeitoContinue lendo

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. EContinue lendo

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, semContinue lendo

Renomeando um Profile ou Account Name (Database Mail)

Muito provavelmente, para utilizar o Database Mail dentro do SQL Server você utilizou a interface gráfica… Criou o profile, a conta, ativou como público (né, fala a verdade…) e manteve as opções padrão. Os e-mails estão sendo enviados normalmente, até que surge a necessidade de criar um outro profile. Como o nome ficou parecido, vocêContinue lendo

“Login failed for user ‘NT Authority\ANONYMOUS LOGON’ ” ao criar um Linked Server

Ao criar um Linked Server entre dois servidores com SQL Server 2008, via Windows Authentication, me deparei com o erro abaixo: Dando uma Googleada investigada, li que poderia ser por causa da delegação via Kerberos não estar funcionando. O nome do “cara”: Kerberos constrained delegation.

Usando o Some | Any | All

Olhando os operadores lógicos do SQL Server (link), me deparei com algo curioso, que até então não tinha visto: os operadores Some, Any e All que, vejam só, está disponível desde do SQL Server 2008. #facepalm O objetivo deles: Comparar um valor escalar (lembrem-se disso) com os valores de um dataset (a.k.a. subquery). O ALLContinue lendo

Escapando caracteres usando o ESCAPE

Pessoal, aproveitando para tirar um pouco a poeira, uma dica rápida que surgiu no trabalho hoje… Como sabemos (sabemos, né?), temos alguns caracteres que são chamados de coringas, para facilitar a busca por um padrão. Não vou explicar aqui o que cada um faz, mas eles são: %, _ , [], [^] O problema: QueroContinue lendo

Gerando scripts DDL no Visual Studio 2013

Eu ainda sou adepto da criação dos scripts pelo editor, principalmente pelo fato que “de vez em quando” o SSMS resolve dropar toda a tabela e criar uma nova estrutura, só porque você resolveu mudar uma coluna que é not null para null (por exemplo).  Mas segue uma dica para quem curte usar o modo design no SSMS e,Continue lendo