Migração de dados com troca de FK

Esta semana concluí uma migração de dados de uma base para outra. Seria um trabalho simples de INSERT/SELECT, não fosse um fato bem "insignificante": na migração, os valores das chaves primárias das tabelas de origem teriam um valor diferente na tabela de destino. Com isso, todas as chaves estrangeiras referenciadas teriam que ser atualizadas para o novo valor. Depois de um levantamento completo da estrutura dos BDs envolvidos, a definição da ordem de execução das tabelas, atualizando sempre as tabelas PAI de relacionamentos antes das respectivas tabelas FILHO do relacionamento, e o mapeamento de/para das colunas, resolvi o problema da conversão das FKs de um jeito simples. Uma informação im

Permissão para usuário em um schema específico

Hoje recebi uma solicitação diferente da equipe de desenvolvimento: liberar acesso total a um determinado esquema em um banco de dados da produção, para um desenvolvedor. Deixando de lado os motivos desta solicitação e a blasfêmia de liberar produção para um desenvolvedor, eu tive que apelar um pouquinho para o BOL, já que fazia muuuito tempo que eu não mexia com permissões. Segue abaixo um passo a passo para liberar e testar esse tipo de permissão: CREATE USER User1 WITHOUT LOGIN; GO CREATE SCHEMA Schema2; GO GRANT CONTROL ON SCHEMA::Schema2 TO USer1; GO GRANT ALTER ON SCHEMA::[Schema2] TO [USer1] go GRANT CREATE TABLE TO [USer1] go GRANT CREATE PROCEDURE TO [USer1] go -- Este coma

Identificar queries lentas com o sp_whoisactive

Escrita por from Adam Machanic (Blog – @AdamMachanic), esta procedure é uma das maravilhas na caixa de ferramentas de qualquer DBA. Particularmente, ela já me salvou em diversas ocasiões. Neste vídeo, o guru Brent Ozar explica as principais características desta procedure. E aqui você pode baixar a última versão da procedure e instalá-la em seu ambiente. Não se preocupe, ela só vai ajudar você. Pode instalar sem medo! :-D A procedure sp_whoisactive retorna informações sobre o que está acontecendo naquele momento na sua instância. Para executá-la, basta digitar: sp_whoisactive Esta procedure pode receber uma série de parâmetros. Eu gosto muito destes três. É bom lembrar que, quanto mais parâm