PDA

View Full Version : محدودیت روی تکرار یک فیلد



nAVA470
یک شنبه 11 مهر 1389, 07:38 صبح
من میخواهم روی یک فیلد در sql محدودیت تعداد تکرار بگذارم.
یعنی یک مقدار در یک فیلد نتواند بیشتر از 10 بار تکرا ر شود. در sql چگونه میشه اینکار و کرد.
ممنون

tooraj_azizi_1035
یک شنبه 11 مهر 1389, 08:32 صبح
من میخواهم روی یک فیلد در sql محدودیت تعداد تکرار بگذارم.
یعنی یک مقدار در یک فیلد نتواند بیشتر از 10 بار تکرا ر شود. در sql چگونه میشه اینکار و کرد.
ممنون

سلام
فکر می کنم باید از Trigger استفاده کنی توی این Trigger که حساس به INSERT هست باید یه SELECT بنویسی که قسمت WHERE اون همون شرطی رو که می خوای داره و در صورت برابر بودن COUNT نتیجه SQL با 10 باید یه پیغام بدی. سعی می کنم بعداً کد SQL معادل رو بهت بدم. :بوس:

Rezahak
یک شنبه 11 مهر 1389, 09:29 صبح
نه تنها INSERT بلكه UPDATE هم بايد همين شرط را چك كند

Reza_Yarahmadi
یک شنبه 11 مهر 1389, 10:14 صبح
اولا تريگر كلا توصيه نميشه بدليل سربار زيادي كه داره
از طرف ديگه تريگر يك مقدار ثابت رو چك ميكنه و اگر بخوايد مقدار جديدي رو چك كنيد بايد تريگر رو عوض كنيد.
به نظر من بهتره اينه كه يه Function بنويسيد كه 2 مقدار ورودي بگيره پارامتر اول فيلدي كه قرار چك بشه و پارامتر ديگه مقداري كه بايد توي فيلد بررسي بشه ، مقدار بازگشتي اون هم معتبر يا نامعتبر بودن فيلد باشه. توي SPيي كه قراره درج رو انجام بده قبل از هر كاري اين Function صدا زده بشه اگر مقدار برگشتي معتبر بودن رو نشون داد درج انجام بشه در غير اينصورت پيغام خطا بده.