PDA

View Full Version : سوال: قفل کردن بانک sql



arashkhaan2002
پنج شنبه 02 دی 1389, 01:57 صبح
سلام
هنگام شماره سند دهی و ثبت آن برای اینکه مطمئن شویم در زمان شماره گیری جدید و سپس ثبت سند با آن شماره کاربر دیگری با همان شماره سندی ثبت نکند چه باید کرد؟

hamid-nic
پنج شنبه 02 دی 1389, 09:44 صبح
سلام
می توانید از خاصیت AutoInc استفاده نمایید .
یا بوسیله یک تریگر مقدار سند وارد شده را کنترل کنید .

arashkhaan2002
پنج شنبه 02 دی 1389, 23:57 عصر
سلام
Auto inc به هر سطر یک عدد نسبت میده در صورتیکه من میخوام چند سطر سندم یک عدد داشته باشه
مورد دوم را یک مثال بزنید

حمیدرضاصادقیان
جمعه 03 دی 1389, 00:11 صبح
البته به جای استفاده از Trigger پیشنهاد میشه یک Sp بنویسید و زمانی که میخواهید اطلاعات رو وارد جدول کنید در داخل اون Sp عمل Insert رو انجام بدید. و همون جا با یک select مقدار فیلد سند رو چک کنید اگر وجود داشت بزرگترین مقدار رو گرفته یک واحد بهش اضافه کنید بعد درج کنید. با این روش مشکل حل خواهد شد و سربار روی جداول هم کاهش پیدا خواهد کرد.

arashkhaan2002
جمعه 03 دی 1389, 13:08 عصر
مرسی این منطقی تر به نظر میاد ولی ایا اینقدر سرعتش بالا هست که 2 تا user همزمان این کارو انجام ندن؟ و شماره ها یکی نشه؟
ضمنا اگه ممکنه مثال یک sp پارامتریک رو برام بگذارید دفعه اوله میخوام sp بنویسم . insert parametric باشه.

حمیدرضاصادقیان
شنبه 04 دی 1389, 08:45 صبح
سلام.بله سرعتشون بالاهست و معمولا هیچ وقت دورکورد باهم یکی نمی شوند. من این روش رو با 20 کاربر همزمان تست کردم و الانم هیچ مشکلی نیست.
مثالهاش در این تالار بسیار زیاد هست. همین SP یا Stored procedure یا Dynamic SQL رو جستجو کنید.