PDA

View Full Version : خارج کردن پایگاه داده از حالت using برای detach کردن



rostamedastan
شنبه 29 بهمن 1384, 19:46 عصر
سلام علیکم :
برای detach کردن پایگاه داده صفحه ای باز می شود و در جلوی connection using this database تعداد استفاده ها را می نویسد حال چگونه می توان بدون زدن کلید clear و با استفاده از کد این تعداد را صفر کرد یعنی پایگاه داده را از حالت استفاده خارج کرد ؟

Elham_gh
دوشنبه 01 اسفند 1384, 17:15 عصر
برای اینکه اتصال کاربران به Database را قطع کنید :


DECLARE @cur_db_id as smallint
select @cur_db_id=dbid from sysdatabases where name='testpubs'
SELECT spid
into #tmp
from sysprocesses where dbid=@cur_db_id

DECLARE @spid smallint
DECLARE Pubs_cursor CURSOR
FOR SELECT * FROM #tmp
OPEN Pubs_cursor
FETCH NEXT FROM Pubs_cursor INTO @spid
DECLARE @strSQL NVARCHAR(50)
WHILE @@FETCH_STATUS = 0
BEGIN
SET @strSQL='KILL '+CAST(@spid AS NVARCHAR(10))
EXEC sp_executesql @strSQL
FETCH NEXT FROM Pubs_cursor INTO @spid
END

CLOSE Pubs_cursor
DEALLOCATE Pubs_cursor

DROP TABLE #tmp



و برای detach کردن DB از دستور زیر استفاده کنید:


EXEC sp_detach_db 'Testpubs', 'true'

rostamedastan
سه شنبه 22 فروردین 1385, 13:56 عصر
سلام علیکم
می شود در مورد کد قطع اتصال کاربران کمی توضیح دهید.
با فرض اینکه نام پایگاه داده من salary است من باید همین کد را عیناً بنویسم و فقط به جای testpubs نام پایگاه داده خود یعنی salary را قرار دهم ؟