Olá,
Dica rápida de hoje.
Como renomear uma base para o mesmo nome com o texto em diferentes caixas (caixas baixas e altas).
Exemplo: alterar EssEnOme para EsseNome.O post leva em consideração também apenas instâncias com case insensitive.
Pra renomear bases de dados é muito comum utilizar a sp_renamedb por bons motivos:
- Procedure antiga já. Bem conhecida;
- Sintaxe simples: EXEC SP_RENAMEDB ‘NomeBaseAtual’, ‘NovoNome’;
- Antes de trocar o nome, faz algumas verificações (óbvias, mas necessárias);
Entretanto, a mesma tarefa pode ser executada com o comando ALTER DATABASE:
ALTER DATABASE NomeBaseAtual MODIFY NAME = NovoNomeBase
Mas o que acontece ao renomear uma base com o mesmo nome, com diferenças apenas nas fontes minúsculas e maiúsculas?
Ao usar a SP_RENAMEDB
EXEC SP_RENAMEDB 'DB_aCesso','DB_Acesso'
Resulta na seguite mensagem:
The database ‘DB_aCesso’ already exists. Specify a unique database name.
O comando ALTER DATABASE vai funcionar tranquilo, e favorável:
ALTER DATABASE DB_aCesso MODIFY NAME = DB_Acesso
Vale lembrar que tanto a sp quanto o comando ALTER DATABASE necessitam de lock exclusivo para efetuar a mudança no nome da base. Além de que comandos que alteram o nome da base exigem permissões de db_creator (na base), control server ou sysadmin.
[]’s
Fonte: