PDA

View Full Version : لیست user های در حال کار کجا نگهداری میشه؟



mehdi_moosavi
یک شنبه 15 شهریور 1383, 11:04 صبح
سلام به همه :)
میشه لطفا بفرمایید تعداد کسانی که در یک زمان به یک دیتا بیس وصل شده و در حال کار با جداول اون هستن در کدوم جدول سیستمی نگهداری میشه
بعبارت دیگه اگه من بخوام بفهمم در یک زمان مشخص چه کسانی در حال کار با هریک از جداول هستن باید کجارو ببینم؟
متشکرم

AminSobati
یک شنبه 15 شهریور 1383, 13:13 عصر
دوست عزیزم،
توسط:


EXEC SP_WHO

فهرست تمام کاربرانی که یک Connection به SQL Server دارند رو بدست میارید (حتی Processهای فعال در Background). اگر مقدار System Process ID یا همون ستون SPID رو به SP_LOCK بفرستین، لیستی از تمام Objectهای Lock شده توسط اون SPID بدست میاد. به عنوان مثال:


EXEC SP_LOCK 56

البته Lock شدن به این معنی نیست که Process دیگه ای از اون Object نمیتونه استفاده کنه. چرا که Lock انواع مختلف داره و میتونه Shared باشه...
در نتیجه دستور فوق، ObjId نشان دهنده آبجکتی هستش که مورد استفاده SPID قرار گرفته. برای اینکه نام آبجکت رو داشته باشین، از تابع OBJECT_NAME استفاده کنین. مثلا:


SELECT OBJECT_NAME(85575343)


موفق باشید،
امین ثباتی MCSD