Como renomear o banco de dados sem primeiro parar a instância do SQL para liberar conexões

2

Existe uma maneira de forçar um banco de dados no modo de usuário único para que um script possa ser executado para renomear os bancos de dados? Eu acho que tenho que reiniciar a instância do SQL (para desligar qualquer conexão de um aplicativo da web, etc.) e então posso executar este script:

USE master
go
sp_dboption MDS, "single user", true
go
sp_dboption StagingMDS, "single user", true
go
sp_renamedb MDS, LastMonthMDS
go
sp_renamedb StagingMDS, MDS
go
sp_dboption LastMonthMDS, "single user", false
go
sp_dboption MDS, "single user", false
go

Depois que esse script é executado, posso reiniciar o IIS para meu aplicativo da web e ele pode se conectar ao novo banco de dados de produção.

Todos os itens acima funcionam bem e estamos fazendo isso há anos, mas agora atualizamos para o SQL 2008 e a instância do SQL2008 também hospeda outros bancos de dados que suportam outros aplicativos da web.

Portanto, em vez de usar uma reinicialização de toda a instância do SQL para ativar o modo de usuário único subsequente em dois bancos de dados, há uma maneira menos intrusiva de realizar isso? Obrigado.

    
por DaniellaMercuryFan 12.06.2010 / 20:11

1 resposta

2

Isso deve matar qualquer conexão aberta ao banco de dados:

alter database mds set single_user with rollback immediate

    
por 15.06.2010 / 18:22