حذف کانکشن های فعال پایگاه داده با کد SQL

اسکریپت حذف تمامی connection های فعال پایگاه داده

توسط admin | گروه SQL Server | 1400/01/03

نظرات 0

گاهی اوقات در حین انجام عملیات روی پایگاه داده با پیغام زیر مواجه می شوید: 

ALTER DATABASE failed because a lock could not be placed on database 'MyDB'. Try again later.  
ALTER DATABASE statement failed.  
Cannot drop database "MyDB" because it is currently in use. 

برای رفع این اشکال می توانید از اسکریپت زیر برای جداسازی اتصالهای فعال از پایگاه داده استفاده فرمائید. (مراقب باشید که دیتا و اطلاعات پایگاه داده را از دست ندهید. گاهی اوقات قطع اتصال موجب از دست رفتن برخی دیتا خواهد شد)

SQL Server 2012 و بالاتر
1
2
3
4
5
6
7
USE [master];
DECLARE @kill varchar(8000) = '';  
SELECT @kill = @kill + 'kill ' + CONVERT(varchar(5), session_id) + ';'  
FROM sys.dm_exec_sessions
WHERE database_id  = db_id('MyDB')

EXEC(@kill);
 

MS SQL Server 2000, 2005, 2008

1
2
3
4
5
6
7
USE master;
DECLARE @kill varchar(8000); SET @kill = '';  
SELECT @kill = @kill + 'kill ' + CONVERT(varchar(5), spid) + ';'  
FROM master..sysprocesses  
WHERE dbid = db_id('MyDB')

EXEC(@kill);
 

 

0 نظر

نظر محترم شما در مورد مقاله های وب سایت برنامه نویسی و پایگاه داده

نظرات محترم شما در خدمات رسانی بهتر ما را یاری می نمایند. لطفا اگر مایل بودید یک نظر ما را مهمان فرمائید. آدرس ایمیل و وب سایت شما نمایش داده نخواهد شد.

حرف 500 حداکثر