ورود

View Full Version : حرفه ای: سوال: آیا میشود در SQL برای مقدار Default Value از یک فانکشن استفاده کرد؟ البته با ابن شرط



tazarvmmr
یک شنبه 05 دی 1389, 02:34 صبح
سلام به همه
دوستان کسی میتونه بگه آیا امکان داره در قسمت Default Value برای یک فیلد از یک تابعی استفاده کرد که مقدار پیش فرض رو بر اساس مقدار یک فیلد دیگه محاسبه کنه؟

مثلا فرض کنید کاربر در جایی مشخصات خودشو وارد میکنه و فیلدهای مربوط به نام و فامیل و محل تولد رو مشخص میکنه حالا من میخوام استان محل تولد چک کنم و اگر جزو شهراهای بزرگ بود مقدار فیلدی که حاوی امیتاز استان هست رو برابر 3 قرار بدم و اگر جزو شهرهای کوچک بود برابر 2 و اگر جزو شهرهای محروم بود برابر یک

میدونم که میتونم تو پراسیجر درج ردیف این کار رو سمت SQL انجام بدم ولی چون قبلا این بانک طراحی شده و بدون این قابلیت هم طراحی شده و الان حدود 50 تا جدول هست که باید به نحوی این کار براش انجام بشه میخوام ببینم آیا میشه این کار رو در زمان تعریف فیلد و از طریق Default Value هم انجام داد یا نه! در غیر اینصورت باید حدود 200 تا Stored Procedure بازنگری بشه که کار سختیه! به فکرم رسید که شاید این امکان وجود داشته باشه و من ازش بیخبر باشم

ممنون از همه

حمیدرضاصادقیان
یک شنبه 05 دی 1389, 07:31 صبح
سلام. بله میتوانید اینکارو انجام بدید.
مثالهای زیر رو ببینید.
لینک 1 (http://www.blackwasp.co.uk/SQLDefaultColumns.aspx)
لینک 2 (http://msdn.microsoft.com/en-us/library/aa175085(v=sql.80).aspx)

tazarvmmr
یک شنبه 05 دی 1389, 14:15 عصر
مرسی، فقط به نظر شما بهتره اینکارو بکنم یا از تریگر استفاده کنم؟

حمیدرضاصادقیان
دوشنبه 06 دی 1389, 08:32 صبح
سلام.عملا تفاوتی نمی کنه و هردوی این کارها به نوعی تریگر هستند.چون در زمان درج و Update این تابع اجرا خواهد شد.