Estou usando esta consulta para renomear o banco de dados:
ALTER DATABASE BOSEVIKRAM MODIFY NAME = [BOSEVIKRAM_Deleted]
Mas mostra um erro ao executar:
Msg 5030, Nível 16, Estado 2, Linha 1
O banco de dados não pôde ser bloqueado exclusivamente para executar a operação.
Há algo de errado com minha consulta?
sql
sql-server
sql-server-2008-r2
Vikram Bose
fonte
fonte
Respostas:
Você pode tentar configurar o banco de dados no modo de usuário único.
https://stackoverflow.com/a/11624/2408095
fonte
WITH ROLLBACK IMMEDIATE
necessário. Se eu não usá-lo, isso causará problemas?WITH ROLLBACK IMMEDIATE
ao alterar um banco de dados em que outros usuários possam estar operando, a fim de garantir a integridade dessas operações. Mas não é realmente necessário quando o banco de dados é retornado ao modo MULTI_USER novamente, pois o banco de dados já está no modo SINGLE_USER e você é o único usuário capaz de executar qualquer transação.Defina o banco de dados para o modo único:
Tente renomear o banco de dados:
Defina o banco de dados para o modo multiusuário:
fonte
WITH ROLLBACk IMMEDIATE
para multiusuário?No SQL Server Management Studio (SSMS) :
Você também pode clicar com o botão direito do mouse no banco de dados no Pesquisador de Objetos e ir para Propriedades . A partir daí, vá para Opções . Role todo o caminho e defina Restringir acesso como SINGLE_USER . Altere o nome do seu banco de dados, volte e configure-o novamente para MULTI_USER .
fonte
Tente fechar todas as conexões com seu banco de dados primeiro:
Retirado daqui
fonte
Isso fez por mim:
fonte
Isso ocorre porque outra pessoa está acessando o banco de dados. Coloque o banco de dados no modo de usuário único e renomeie-o.
Este link pode ajudar:
http://msdn.microsoft.com/en-IN/library/ms345378(v=sql.105).aspx
e também:
http://msdn.microsoft.com/en-us/library/ms345378.aspx
fonte
Altere o banco de dados para o modo de usuário único, conforme mostrado nas outras respostas
Às vezes, mesmo após a conversão para o modo de usuário único, a única conexão permitida ao banco de dados pode estar em uso.
Para fechar uma conexão mesmo após a conversão para o modo de usuário único, tente:
Veja os resultados e veja o ID da conexão com o banco de dados em questão.
Em seguida, use o comando abaixo para fechar esta conexão (deve haver apenas um, pois o banco de dados agora está no modo de usuário único)
Substitua connection_id pelo ID nos resultados da 1ª consulta
fonte
1. banco de dados definido 1º modo de usuário único
ALTER DATABASE BOSEVIKRAM SET SINGLE_USER COM ROLLBACK IMEDIATO
2. Renomeie a base de dados
ALTER DATABASE BOSEVIKRAM MODIFY NAME = [BOSEVIKRAM_Deleted]
3. DATABAE AJUSTE O MODO MULTIUSER
ALTER DATABASE BOSEVIKRAM_Deleted SET MULTI_USER COM ROLLBACK IMEDIATO
fonte
Outra maneira de fechar todas as conexões:
Ferramentas administrativas> Exibir serviços locais
Parar / Iniciar o serviço "SQL Server (MSSQLSERVER)"
fonte
fonte