Kaldırmak istediğiniz db'deki veritabanı anlık görüntüleri gibi bağımlılıklarınızın olmadığından emin olun. Yine de, hata mesajı başka şekilde görünecekti. Veritabanınıza bağlanan hiçbir gizli işlem olmadığından emin misiniz? İyi bir yaklaşım, tüm oturumları öldüren bir komut dosyasını çalıştırmak ve veritabanını yeniden adlandırdıktan hemen sonra başka bir ada koymak ve ardından veritabanını bırakmak olacaktır.
bu seçime göre bir imleç oluşturun:
select d.name , convert (smallint, req_spid) As spid
from master.dbo.syslockinfo l,
master.dbo.spt_values v,
master.dbo.spt_values x,
master.dbo.spt_values u,
master.dbo.sysdatabases d
where l.rsc_type = v.number
and v.type = 'LR'
and l.req_status = x.number
and x.type = 'LS'
and l.req_mode + 1 = u.number
and u.type = 'L'
and l.rsc_dbid = d.dbid
and rsc_dbid = (select top 1 dbid from
master..sysdatabases
where name like 'my_db')
imlecin içindeki sorun:
SET @kill_process = 'KILL ' + @spid
EXEC master.dbo.sp_executesql @kill_process
PRINT 'killed spid : '+ @spid
imleç kapatılıp bırakıldıktan sonra:
sp_dboption 'my_db', 'single user', 'TRUE'
go
sp_renamedb 'my_db', 'my_db_old'
go
DROP DATABASE MY_DB_OLD