PDA

View Full Version : سوال: تغيير مکان يک فيلد توسط دستور SQL



mpmsoft
جمعه 02 اسفند 1387, 17:48 عصر
دوستان فرض بفرماييد يک جدول حدود 100 فيلد داره

حالا به کاربر اين امکان رو داديم که در جدول نمايش بتونه ترتيب نمايش فيلد رو انتخاب کنه

حالا به چه صورت مي تونيم توي جدول هم ترتيب رو همانند ترتيب انتخاب شده توسط کاربر بکنيم

من فکر مي کنم توسط دستور alter table امکان پذير باشه ولي نمي دونم چه تگي بايد اضافه بشه که بتونم دستي موقعيت قرار گيري فيلد رو انتخاب کنم

ممنون مي شم منو راهنمايي کنيد

AminSobati
جمعه 02 اسفند 1387, 19:19 عصر
در SQL Server با توجه به توانایی دستور Select عملا ترتیب فیلدها مهم نیست چون شما به هر ترتیبی که بخواین Select رو انجام میدین. در نسخه 2000 میتونستیم ID هر فیلد رو در جداول سیستمی تغییر بدیم اما تغییر مستقیم روی اطلاعات سیستمی در نسخه 2005 دیگه ممنوع شد!

EffatBandehlou
شنبه 03 اسفند 1387, 11:12 صبح
شما خودتون به راحتي مي تونيد نوع دستور رو وقتي sql خودش ميسازه ببينيد.
براي اينكار كافيه يكبار دستي اينكارو انجام بدين بعد پيش از save كردن دكمه اي كه بالاي صفحه ديزاين هست و نوشته Save Change Script استفاده كنيد.دستور معادل اونو بهتون ميده

mpmsoft
شنبه 03 اسفند 1387, 11:33 صبح
چون شما به هر ترتیبی که بخواین Select رو انجام میدین.

فرمایش شما درست

ولی در برنامه ای که بنده نوشتم کاربران می تونه یک فرم ورود اطلاعات ایجاد کنه و همچنین فیلد جدید ایجاد بکنه

حالا فرض بفرمایید کاربر می خواد ترتیب نمایش فیلدهارو دستی عوض بکنه برای اینکار یا باید ترتیب فیلدها در بانک تغییر بکنه و یا در جایی ترتیب بصورت رشته ذخیره بشه و ....

بنده نصب به سناریو برنامه ترجیح دادم که موقعیت فیلد در بانک تغییر کنه


Save Change Script

در این روش من نگاه کردم کل فیلدها alter می شن خوب در این روش می بایست که کل فیلدهارو من یک بار alter کنم که فکر نمی کنم درست باشه

آیا SQL راهی برای اینکه من بتونم موقعیت یک فیلد رو عوض بکنم نداره ؟ :ناراحت:

حامد مصافی
شنبه 03 اسفند 1387, 12:30 عصر
یک فیلد به مضمون ردیف ایجاد کنید و ترتیب دلخواه را روی شماره های این فیلد اعمال کنید. سپس هنگاه SELECT مرتب سازی را بر حسب این فیلد انجام دهید.

AminSobati
شنبه 03 اسفند 1387, 12:44 عصر
میتونین همیشه یک View رو بعنوان واسطه قرار بدین و همیشه Select از این View صورت بگیره. Alter کردنش هم زحتمی نداره

mpmsoft
شنبه 03 اسفند 1387, 17:33 عصر
درسته راه هاي بهتري هم وجود داره

پس بنابراين امکان پذير نيست