PDA

View Full Version : سوال: فیلدی از نوع idintity و ثبت همزمان در جدول



minajasmi
پنج شنبه 13 بهمن 1390, 16:52 عصر
سلام دوستان من در جدول ستونی از نوعidentity دارم که به هر ستون شماره میده آیا اگه چندتا کاربر بخان به طور همزمان ثبت کنن مشکلی پیش میاد یا خیر؟

fakhravari
پنج شنبه 13 بهمن 1390, 18:34 عصر
بد توضیح دادید.
در نهایت باهم ثبت نمیشوند که
یکی یکی insert میشن

minajasmi
پنج شنبه 13 بهمن 1390, 18:42 عصر
بد توضیح دادید.
در نهایت باهم ثبت نمیشوند که
یکی یکی insert میشن


من تو جدول یه ستون از نوع identity در نظر گرفتم که به هر کاربری که ثبت نام میکنه یه شماره ثبت نام میده حالا اگه 100 نفر بخان همزمان ثبت نام کنن. ایا از این نظر مشکلی پیش نمیاد؟همزمان به اون 100 نفر شماره میده یا ثبت نمیکنه؟
تو سایت من گاهی ثبت میکنه گاهی خیر. احتمال داره مشکل از این شماره دادن باشه.چون اگه از نظر کد مشکل داشت که اصلا اجرا نمشد.

xalerebvar
پنج شنبه 13 بهمن 1390, 19:05 عصر
من تو جدول یه ستون از نوع identity در نظر گرفتم
دوست عزیز اگه منظورت از Identity همون uniqueidentifier مربوط به sql server باشه بایستی عرض کنم که خود این نوع یکتاست یعنی به هیچ وجه امکان نداره برای دو رکورد یک Id یکسانی تولید بشه.
اما اگه منظورتون از identity نوع int باشه بایستی به هنگام درج در پایگاه داده مقایسه کنی که داده ها ی مربوط به فیلدت یکسان نباشن ، هر چند با استفاده از خاصیت Is Identity می تونی جوری sql رو ست کنی که خودش اتوماتیک وار یک مقدار ترتیبی رو بهش اضافه کنه که فکر کنم منظور سئوالت همین بود.
سئوالامون رو ساده و روان بپرسیم

minajasmi
پنج شنبه 13 بهمن 1390, 19:10 عصر
دوست عزیز اگه منظورت از Identity همون uniqueidentifier مربوط به sql server باشه بایستی عرض کنم که خود این نوع یکتاست یعنی به هیچ وجه امکان نداره برای دو رکورد یک Id یکسانی تولید بشه.
اما اگه منظورتون از identity نوع int باشه بایستی به هنگام درج در پایگاه داده مقایسه کنی که داده ها ی مربوط به فیلدت یکسان نباشن ، هر چند با استفاده از خاصیت Is Identity می تونی جوری sql رو ست کنی که خودش اتوماتیک وار یک مقدار ترتیبی رو بهش اضافه کنه که فکر کنم منظور سئوالت همین بود.
سئوالامون رو ساده و روان بپرسیم

ممنون از جوابتون.
منطورم identity نوع int.ولی مشکلم اینه که برای ثبت کردن همزمان مشکلی پیش میاد یا خیر.و البته من چک نمیکنم چیزیو فقط با هر درج یه شماره به کاربر میده
سایت من گاهی ثبت میکنه گاهی نه کلا ثبت نمیشه نه فقط شماره.فکرنمیکنم مشکل از کدش باشه.احتمال دادم از این فیلد باشه. خیلی به کمک نیاز دارم کمکم کنید

xalerebvar
پنج شنبه 13 بهمن 1390, 19:24 عصر
به ازای درج هر رکورد اگر نوع فیلدی رو برابر Int گرفته باشیم و پراپرتی Is Identity رو برابر yes قرار داده باشیم بایستی این فیلد به صورت اتوماتیک وار یک مقدار بهش اضافه بشه، حالا اگه 1000 کاربر هم در یک لحظه عمل درج رو انجام بدن ترتیب به همین رواله چون پایگاه داده های رابطه ای رکورد به رکود داده ها را اضافه میکنند، دوست عزیز کوئری مورد نظرت رو داخل خود sql server اجرا کن ببین چگونه داده ها رو درج می کنه ، اگه دیدی درسته برو تو محیط VS و یک نگاه عمیق به کدهات بنداز شاید مشکل کوچکی باعث درج نشدن به صورت متوالی رکوردهایتان شود.
موفق باشید

minajasmi
پنج شنبه 13 بهمن 1390, 19:30 عصر
به ازای درج هر رکورد اگر نوع فیلدی رو برابر Int گرفته باشیم و پراپرتی Is Identity رو برابر yes قرار داده باشیم بایستی این فیلد به صورت اتوماتیک وار یک مقدار بهش اضافه بشه، حالا اگه 1000 کاربر هم در یک لحظه عمل درج رو انجام بدن ترتیب به همین رواله چون پایگاه داده های رابطه ای رکورد به رکود داده ها را اضافه میکنند، دوست عزیز کوئری مورد نظرت رو داخل خود sql server اجرا کن ببین چگونه داده ها رو درج می کنه ، اگه دیدی درسته برو تو محیط VS و یک نگاه عمیق به کدهات بنداز شاید مشکل کوچکی باعث درج نشدن به صورت متوالی رکوردهایتان شود.
موفق باشید

یعنی از این نطر شماره دادن مشکلی نداره؟
چه احتما لهایی وجود داره که این مشکل پیش بیاد.اگه کد ها مشکل داشت که اصلا درج نمیشد. خواهشا راهنماییم کنید. نمیدونم چکارش کنم.

xalerebvar
پنج شنبه 13 بهمن 1390, 19:46 عصر
یه قسمت از کدت رو بزار

vof.ir
پنج شنبه 13 بهمن 1390, 19:58 عصر
دوست عزیز ، شما نوع فیلدت را بگذار int
بعد خاصیت IsIdentity
را ست کن. حالا خود سیکوئل شماره دهی را هندل میکنه. منتهی شما باید در کوئری های insert یک تغییری بدی به این صورت که پس از درج شماره آیدنتیتی درج شده را بهت برگردونه، کدش یادم نیست
اما میدونم که میشه.
بعد که کوئری اجرا شد شما خیلی راحت عدد بازگشتی از کوئری را به کاربر نشان بده

fakhravari
پنج شنبه 13 بهمن 1390, 20:56 عصر
نوع داده محدوده قابل قبول فضاي لازم
bigint از منفي دو به توان 63 تا دو به توان 63 منهاي يک 8 بايت
Int از منفي دو به توان 31 تا دو به توان 31 منهاي يک 4 بايت
Smallint از 32768- تا 32767 2 بايت
tinyint از صفر تا 255 1 بايت
http://forum.learninweb.com/showthread.php?tid=72

programer-ir
پنج شنبه 13 بهمن 1390, 21:01 عصر
scope_identity()