unable to rename database in sql server

“unable to rename database in sql server”

Bazı durumlarda veritabanlarının ismini değiştirmemiz gerekebilir fakat açık kalan sessionlar buna izin vermeyebilir. Rename yapabilmemiz için iki yöntem bulunmaktadır. Bunlardan birisi aşağıdaki gibi veritabanında açık kalan sessionları kapatıp rename yapmaktır.

Aşağıda yapılacak işlemler stand-alone veritabanları için geçerlidir eğer  Availability group mimarisini kullanıyorsanız  Availability groupdan çıkarıp aşağıdaki işlemleri yapabilirsiniz.

 

sp_who komutunu çalıştırdığınızda aşağıda ki gibi veritabanı ismi ve ona ait spid değerleri gözükmektedir.

Slepping modda kalan sessionları kill komutu ile aşağıdaki gibi  sonlandırarak  veritabanın ismini değiştirebilirsiniz.

kill spid_değeri


İkinci yöntem olarak  veritabanını  single_user moda çekerek ismini değiştirebiliriz fakat single_user  moda çekildiğinde veritabanı  farklı kullanıcılar tarafından erişilemez durumda olacaktır.

ALTER DATABASE EskiVeritabanıİsmi SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
sp_renamedb 'EskiVeritabanıİsmi','YeniVeritabanıİsmi'
GO
ALTER DATABASE YeniVeritabanıİsmi SET MULTI_USER WITH ROLLBACK IMMEDIATE
GO

 

NOT:  Yukarıdaki yöntem de veritabanı single user moda çekilmektedir. Bundan dolayı veritabanı ismini değiştirdikten sonra multi user moda geçmek gerekiyor . Multi user moda çekilmediği durumda veritabanı tek kullanıcı modunda kalır ve diğer kullanıcıların bağlantısını engelleyebiliriz. “unable to rename database in sql server” hatasını bu şekilde çözmüş oluruz.

Loading