PDA

View Full Version : مشکل در detach پایگاه داده SQL با استفاده از کد



golroz
شنبه 28 خرداد 1390, 18:23 عصر
با سلام
مشکل این هست که در صورتی که connection جدیدی ساخته نشده باشد یا اینکه در فرمی آن را اجرا نکرده باشی جواب می دهد اما هر بار که connection باز میشود برای استفاده و بسته می شود بعد از آن دیگر detach جواب نمیدهد می گوید پایگاه داده در حال استفاده است لطفا راهنمایی کنید متشکرم ...

حمیدرضاصادقیان
یک شنبه 29 خرداد 1390, 07:55 صبح
سلام.
شما قبل Detach باید تمام Connection های به یک دیتابیس رو ببندید. حتی اگر Connection بسته بشه مقدار زمانی طول میکشه تا اون ارتباط از دیتابیس حذف بشه.
برای بدست آوردن لیست Connection ها میتوانید از جدول Sysprocesses آنها را بدست بیارید.
به این کد توجه کنید.

select spid from sys.sysprocesses where dbid=db_id('Test')

golroz
یک شنبه 29 خرداد 1390, 17:58 عصر
سلام.
شما قبل Detach باید تمام Connection های به یک دیتابیس رو ببندید. حتی اگر Connection بسته بشه مقدار زمانی طول میکشه تا اون ارتباط از دیتابیس حذف بشه.
برای بدست آوردن لیست Connection ها میتوانید از جدول Sysprocesses آنها را بدست بیارید.
به این کد توجه کنید.

select spid from sys.sysprocesses where dbid=db_id('Test')


هیچ connection هم باز نیست نمی دونم چرا نمیشه کمک کنید..

حمیدرضاصادقیان
دوشنبه 30 خرداد 1390, 08:42 صبح
البته به جای کلمه Test باید نام دیتابیس خودتون رو بنویسید.

golroz
سه شنبه 31 خرداد 1390, 18:12 عصر
البته به جای کلمه Test باید نام دیتابیس خودتون رو بنویسید.

ممنون از راهنمایی هاتون
ولی اگر میشه راهنماییم کنید که چه جوری می تونم connection را کامل ببندم که دیگر باز نباشه بازم ممنون میشم..

حمیدرضاصادقیان
چهارشنبه 01 تیر 1390, 08:57 صبح
ببینید دوست عزیز شما وقتی یک Connection به دیتابیس ایجاد میکنید و قطع ارتباط میکنید 15 ثانیه طول میکشه تا Connectionآزاد بشه. برای اینکه سریعتر انجام بشه. با دستور بالا لیست Connection ها رو به دیتابیس بدست میارید و با استفاده از دستور Kill (http://msdn.microsoft.com/en-us/library/ms173730.aspx) اونها رو از بین میبرید.

golroz
چهارشنبه 01 تیر 1390, 18:07 عصر
سلام
نمیدونم چه جوری از دستور kill باید استفاده کرد یک مثال یا کد ندارید یا اینکه راهنمایی کنید با تشکر .......

حمیدرضاصادقیان
شنبه 04 تیر 1390, 08:02 صبح
لینکشو که در بالا بهتون دادم.
روی کلمه Kill در پست شماره 6 کلیک کنید تا مثالهاشو ببینید.