ورود

View Full Version : جلوگیری ا ورود داده های تکراری با استفاده از uniqueidentifier



kafinetetaha
پنج شنبه 21 اردیبهشت 1391, 03:00 صبح
با سلام من می خوام با استفاده از uniqueidentifier از وردود داده های تکراری جلوگیری کنم لطفا من را راهنمایی کنید.

mohsen.net
پنج شنبه 21 اردیبهشت 1391, 08:46 صبح
uniqueidentifier مشخص نمی کنه که داده های ورودی تکراری هستند یا نه ، بلکه یک فیلد یکتا برای یک سطر می سازد

kafinetetaha
پنج شنبه 21 اردیبهشت 1391, 08:56 صبح
خوب دوست عزیز چگونه باید ازش استفاده کرد؟

sanay_esh
پنج شنبه 21 اردیبهشت 1391, 09:35 صبح
سلام
این uniqueidentifier فقط برای اینکه یک کد رهگیری به یک رکورد خاص داده باشید مانند کد رهگیری مرسوله های پستی سازمان پست یا کد رهگیری خرید برای هر کالا

مثلا اگر به عنوان کد رهگیری فروش استفاده کرده باشی میتونی با ارائه آن به مشتری و رسید ... بعدها ازش برای تاریخچه فروش استفاده کنی همین!!!

kafinetetaha
پنج شنبه 21 اردیبهشت 1391, 09:48 صبح
خوب دوست عزیز چطوری ازش استفاده کنم من این فیلدو اضافه می کنم چطوری مثلا یک فیلد کد ملی دارم میخوام روی این فیلد اعمالش کنم

حمیدرضاصادقیان
پنج شنبه 21 اردیبهشت 1391, 18:13 عصر
سلام.
دوستان که توضیح میدن چرا مطالعه نمیکنید.
این فیلد خودش یک مقدار تولید میکنه که یکتا هست و شما نمیتونید مقدار اونو تغییر بدید.
برای کد ملی باید مثلا از فیلد char با طول 10 استفاده کنید بعد اونو به عنوان کلید در نظر بگیرید تا هرکد ملی تکراری وارد نشه.

kafinetetaha
پنج شنبه 21 اردیبهشت 1391, 21:45 عصر
واقعا دستتون درد نکنه از راهنمایی تون ولی یک سوال همین uniqueidentifier چطوری میتوان اندازشو کم کرد مثلا 8 کاراکتر بده؟

pashna
جمعه 22 اردیبهشت 1391, 04:23 صبح
سلام، ببینید شما اگر در محیط اسکیوال بنویسید :


SELECT NEWID()


یک مقدار یکتا به شما برمیگردونه ، شما میتونید مثلا هرچندتا از کاراکتر‌ها شو بخواهید جدا کنید ولی‌ دیگه تضمینی نیست که یکتا باشه، خلاصه‌ مطلب اینکه شما نمیتونید فقط به صرف UNIQUEIDENTIFIER بودن از ورود داده‌های تکراری جلو گیری کنید. راهش اینه که شما ۱ فیلدِ UNIQUEIDENTIFIER داشته باشید و کلید اصلیش کنید، اونوقت میتونید بگید دادهٔ تکراری ندارید.
چطوری ؟
اینطوری که ۱ جدول بسازید، ۱ فیلد به نام مثلا کد ملی‌ توش بگیرید، دیتا تایپ شو UNIQUEIDENTIFIER قرار بدید و کلیدش کنید