ورود

View Full Version : تولید داده تصادفی در sql



f_naderi
سه شنبه 15 مرداد 1392, 23:37 عصر
با سلام
من یک جدول در sql دارم و نیاز دارم که این جدول به اندازه 1000 رکورد داشته باشد حالا من می خوام بدونم که آیا در sql امکان ایجاد تولید داده تصادفی وجود دارد یا خیر اگر می شود، به چه صورت است؟ نیاز فوری دارم
با تشکر

sajadsobh
چهارشنبه 16 مرداد 1392, 15:27 عصر
منظورتون ار داده تصادفی چیه؟! اون داده چی میخواد باشه و چه استفاده ای ارش میخواین بکنین؟

f_naderi
پنج شنبه 17 مرداد 1392, 00:01 صبح
من پروژه ام در مورد داده کاوی هستش و قراره دو تا تیبل داشته باشم که یکی حاوی اطلاعات شخصی مشترکین تلفن همراه باشه و دیگری حاوی اطلاعات تماس مشترکین باشد و چون من به داده واقعی دسترسی ندارم پس برای پیاده سازی پروژه ام نیاز دارم که با اسکیوال داده تصادفی تولید کنم و نیازم هم بسیار فوری می باشد ممنون میشم کمکم کنید

محمد سلیم آبادی
شنبه 19 مرداد 1392, 02:09 صبح
شرکت red gate برای این منظور نرم افزارهایی تهیه کرده.

f_naderi
یک شنبه 20 مرداد 1392, 19:51 عصر
ممنون
من این نرم افزار را نصب کردم و داده باهاش تولید کردم ولی حالا نمی دونم چطور می تونم این داده ها را داخل اسکیوال 2008 وارد کنم چون این داده ها رو که ذخیره می کنم با پسوند sqlgen هستند.نیازم خیلی فوری هست ممنون میشم راهنمایی کنید

hramezani
سه شنبه 22 مرداد 1392, 09:35 صبح
سلام
میخوای نوع داده هات چی باشه؟
خود sql یه تابع داره که به صورت رندوم کد GUID تولید میکنه : SELECT NEWID()
حالا اگه هر فرمت دیگه میخوای میتونی تبدیل کنی مثل SELECT abs(CONVERT(BIGINT,CONVERT(BINARY(8), NEWID())))
یا SELECT right(CAST(CAST(NEWID() AS VARBINARY(36)) AS BIGINT),6)

Salah Sanjabian
سه شنبه 22 مرداد 1392, 12:48 عصر
ممنون
من این نرم افزار را نصب کردم و داده باهاش تولید کردم ولی حالا نمی دونم چطور می تونم این داده ها را داخل اسکیوال 2008 وارد کنم چون این داده ها رو که ذخیره می کنم با پسوند sqlgen هستند.نیازم خیلی فوری هست ممنون میشم راهنمایی کنید
با کدوم Tools کار کردین؟ باید با Sql Data Generator کار کنید وقتی این Tools رو اجرا میکنید با مشخص کردن نام اینستنس و اسم دیتابیس داده های مورد نظر رو واستون تولید میکنه مثلا میگید به ازای هر جدول 1000 رکورد

f_naderi
سه شنبه 22 مرداد 1392, 20:36 عصر
سلام و ممنون از همگی
من تونستم داده ها رو وارد جداول کنم ولی حالا یه مشکل دیگه دارم.
من دو تا جدول دارم یکی شماره تلفن و مشخصات فردی افراد داخلش باید ایجاد بشه که اسمش profile است و جدول دوم که اسمش detail است حاوی اطلاعاتی مانند شماره تماس مقصد و شماره تماس مبدا و طول تماس و تاریخ و اینها می باشد پس یعنی جدول دوم باید با توجه به شماره هایی که در جدول اول وجود داره ساخته بشه ولی مشکل اینجاست که شماره هایی که داخل جدول دوم ایجاد میشه یکسری هاش داخل جدول اول نیست حالا من چطور می تونم کاری کنم که شماره های مربوط به شماره تماس مبدا رو در جدول دوم را از شماره تلفن های موجود در جدول اول بگیره.
ببخشید اگه خسته شدید با این متن طولانی ... نیاز خییلی فوری دارم

hramezani
چهارشنبه 23 مرداد 1392, 09:14 صبح
سلام مشکل دقیقا کجاست ؟
خب این که میشه یه Foreign Key !

محمد سلیم آبادی
چهارشنبه 23 مرداد 1392, 12:15 عصر
حالا من چطور می تونم کاری کنم که شماره های مربوط به شماره تماس مبدا رو در جدول دوم را از شماره تلفن های موجود در جدول اول بگیرهاگر روی این ستون یک قید کلید خارجی بزارین چون داده ها بصورت گروهی درج میشن و دستور insert یک تراکنش محسوب میشه حتی اگر یکی از شماره های مبدا خارج از شماره های جدول profile باشه هیچ سطری درج نمیشه. در نتیجه فعلا بهتر قیدی روی جدول detail نذارید (البته من با این برنامه کار نکردم و دقیق نمیدونم به چه شکل داده ها را در بانک مقصد درج میکنه بصورت bulk یا یکی یکی...)

یه راه ساده این هست که سطرهایی که شماره مبدا آنها در جدول profile نیست رو حذف کنید. با این دستور:

delete from detail
where not exists (select * from profile where profile.mabda = detail.mabda)