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 schemausuá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)?

Para alterar o schema de um objeto, deve ser executado o seguinte comando:

Agora, vamos executar isso em lote:

Opção 1: Cursor

Opção 2: Concatenação e execução (abordagem que eu prefiro)

Por hoje era isso… Espero que seja útil para você!

  • PS: Sim, você poderia substituir a query na INFORMATION_SCHEMA pela query na sys.objects com join na sys.schemas, sem maiores problemas…

[]’s!

Deixe uma resposta

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.