PDA

View Full Version : دستور With



mona_b
چهارشنبه 25 آذر 1383, 21:56 عصر
لطفا در مورد دستور (with(nolock و (with(updlock که در جمله select می آید توضیح دهید.

AminSobati
پنج شنبه 26 آذر 1383, 21:58 عصر
دوست عزیزم اینها به Lock Hint معروف هستند و با دستورات دیگه ای مثل Update هم استفاده میشن.
شما میتونین رکوردهای مورد نظر رو Lock کنین یا نکنین. مثلا دستور زیر باعث میشه در تمام مدت، جدول Cutomers برای دیگران غیر قابل خواندن بشه. برای انجام این کار، وارد QA بشین و بنویسین:

begin tran
select * from northwind..customers with(xlock,holdlock)
حالا در QA یک Connection دیگه باز کنین و بنویسین:

set tran isolation level repeatable read
select * from northwind..customers with (nolock)
الان دستور Select نتیجه رو نمایش میده چون بوسیله nolock در حقیقت به lock شدن رکوردهای Customers توجه نکردین در حالی که اگر فقط بنویسین:

select * from northwind..customers
ملاحظه میکنین که این دستور اصطلاحا Block میشه و ادامه داره تا زمانیکه Connection اولی یا Rollback Tran انجام بده یا Commit Tran.
موفق باشین

mona_b
پنج شنبه 26 آذر 1383, 23:46 عصر
ممنون از راهنمائیتون :flower:

AminSobati
جمعه 27 آذر 1383, 00:19 صبح
موفق باشین