Coluna calculada ou computada

O SQL Server permite a criação de colunas calculadas ou computadas. Ok, mas o que é, como criar e fazer o uso de uma coluna calculada? Colunas calculadas são colunas preenchidas pelo SQL Server com um calculo dinâmico de uma expressão que pode, ou não, referenciar outras colunas da mesma tabela. Vamos ver um exemplo: A coluna calculada pode ser criada junto com a tabela ou depois, como qualquer coluna. O que muda é sua declaração: omitimos o datatype da coluna e acrescentamos AS e a expressão que define o valor da coluna. Bom, acho que é bem claro nesse ponto que não é possível definir valores para estas colunas usando Insert, Update ou Merge. E como fica a inclusão de registros? Observe que

Cadastro de municípios do IBGE

Para quem precisar do cadastro de municípios do IBGE, basta clicar aqui para ir até a página oficinal do IBGE. Depois, é só baixar o arquivo. A página oferece 3 cadastros oficiais para baixar: Códigos de Municípios Códigos de Regiões Metropolitanas Códigos de Países

Erro ao reindexar tabelas num job

Tenho um plano de manutenção que roda semanalmente para algumas bases legadas do SQL 2005, que tiveram upgrades até o 2016. São BDs com uma estrutura meio ruinzinha, PKs com várias colunas, muitos índices para atender as queries. Enfim, aquelas bases que a gente herda quando entra numa empresa, e não consegue mudar nem com reza brava... Para melhorar a performance, montei esse plano que reindexa os índices nonclustered e recalcula as estatísticas. Ajudou um pouco, mas só um pouco. Porém, em uma das bases, eu recebia a mensagem: Executed as user: DOMAIN\SqlAgent. ALTER INDEX failed because the following SET options have incorrect settings: 'QUOTED_IDENTIFIER'. Verify that SET options are corr

Criar cursor com SQL dinâmico

Cursor não é um comando muito recomendado para desenvolvedores. Mas muitos DBAs usam e abusam deste recurso para tarefas de administração ou manutenção. Eu admito, sou grande fã deles, desde que só eu use no ambiente. Essa dica é bem interessante para usar naqueles scripts que geram scripts, muito comum no dia a dia do DBA. Eu quis criar um cursor baseado num SELECT dinâmico, mas não deu muito certo... Para resolver esse caso, basta incluir a declaração do cursor no SQL dinâmico:

Liberar procedure sp_helptext

Tenho alguns clientes que possuem equipe de desenvolvimento própria, e essa equipe não tem acesso total à produção. Nesses locais, normalmente, os desenvolvedores até acessam produção, mas apenas com permissão de leitura. É uma forma de facilitar o suporte em caso de problemas com o sistema, sem correr o risco de alguém decidir alterar alguma coisa no BD para corrigir um erro, e acabar gerando outros tantos... Porém, uma reclamação constante dos desenvolvedores é não conseguir visualizar o código de views, functions e stored procedures. Hoje, eu precisei fazer essa liberação num cliente, e o comando simplesmente desapareceu da minha cabeça. Depois de algumas pesquisas na Internet, finalmente

Identificar a versão atual do SQL Server

Quando conectamos a uma instância do SQL Server, vemos algumas informações importantes ao lado do ícone de Banco de Dados: Nome da instância SQL Server 99.9.999.9 Nome do usuário da conexão Os números à frente do SQL Server indicam a versão instalada naquela instância. Mas, considerando os services packs e pacotes acumativos, como saber exatamente o que está instalado? Bom, embora até possamos decorar cada uma versões e pacotes liberados pela Microsoft, ninguém faz isso, certo? Mas, para facilitar um pouquinho, podemos começar com a versão principal: 7 - SQL 7.0 8 - SQL 2000 9 - SQL 2005 10 - SQL 2008 11 - SQL 2012 12 - SQL 2014 13 - SQL 2016 14 - SQL 2017 Para identificar quais pacotes de a