Veritabanını yeniden adlandırmam gerekiyor, ancak diğer işlemler bunu kullandığından beri yapamıyorum. Bu süreci umursamıyorum ve onu öldürmem gerek.sql server 2008 Herkes db'mden nasıl ayrılır?
Db'deki tüm bağlantıları nasıl silerim?
Veritabanını yeniden adlandırmam gerekiyor, ancak diğer işlemler bunu kullandığından beri yapamıyorum. Bu süreci umursamıyorum ve onu öldürmem gerek.sql server 2008 Herkes db'mden nasıl ayrılır?
Db'deki tüm bağlantıları nasıl silerim?
benim yorumum gereğince bir kez modu single_user
yılında aynı bağlantıdan yeniden adlandırma yapmak gerekir. Yeni bir bağlantı açmaya çalışacağından, bunu Object Explorer aracılığıyla yeniden denemeyin.
ALTER DATABASE [old_name]
SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
ALTER DATABASE [old_name]
MODIFY NAME = [new_name]
GO
ALTER DATABASE [new_name]
SET MULTI_USER
GO
Bunun sadece MS SQL 2005 ve üstü için çalıştığı bir not. Daha önceki sürümde çalışanlar için 'EXEC sp_dboption 'DB name', 'single user', 'TRUE'' kullanmanız gerekir. – Nux
sp_who komutunu çalıştırın, ardından veritabanınızdaki herkes için [pid] öğesini kesin. Bunun gibi
Bu can sıkıcı, hantal ve bunu yaparken 500'e daha fazla spids sunucunuza bağlanabilir. Hiç bir yamaca oynayacak mısın? Veritabanını SINGLE_USER olarak ayarlayın - bu tek bir komuttur ve gelen yeni bağlantıları engeller. –
: Kill All Active Connections To A Database
ALTER DATABASE oldNameSET SINGLE_USER WITH ROLLBACK IMMEDIATE
EXEC sp_renamedb 'oldName', 'newName'
ALTER DATABASE newName SET MULTI_USER --new name of course
Bu
beni veritabanı ve kuvvet ayırma herkesi adlandırmak için iyi çalıştı ve sadece bir kullanıcı atime sahip olabilir
seni tüm önerdi yapmaya çalıştım ama DB alıyorum alr3ady açıktır: Aşağıdaki işler bu uç ...
–Başka bir bağlantı kullanacak olan Nesne Gezgini'ni kullanarak deneme ve yeniden adlandırmayın. TSQL kullanmanız gerekiyor. –