AmirAmiri
سه شنبه 13 مهر 1389, 17:56 عصر
سلام خدمت تمامه اساتید گرامی.
من به یه مشکل برخوردم.
برنامه ای نوشتم که بعد از مدتی مجبور شدم توی بانک تغییراتی ایجاد کنم. بعضی از جداول رو تغییر دادم (یک یا چند فیلد اضافه کردم) حالا که نسخه جدید برنامه آماده شده و میخوام ارائه بدم باید فکری به حاله اطلاعات مشتری ها بکنم. به این فکر افتادم که دیتابیس مشتری رو آپدیت کنم و برای اینکار دستوراتی رو در قالب فایل آپدیت نوشتم که Stored Procedures ها رو پاک میکنه و از دوباره CREATE میکنه که ایکار به صورت خودکار انجام میشه اما مشکل من اینه که نمیتونم تشخیص بدم دیتابیس آپدیت شده یا نه و نمیخوام برم توی یکی از جدوال مثلا نسخه دیتابیس رو ثبت کنم تا متوجه آپدیت شدنش بشم. میخوام هر جدولی که تغییر دادم را ALTER کنم و فیلدهای مورد نظرم رو بهش اضافه کنم.
مشکل اصلی : وقتی توی فایل آپدیت دیتابیس میخوام جداول رو ALTER کنم ممکنه به جدولی بر بخورم که قبلا تصحیح شده و فیلد مورد نظرم درونش وجود داره اون وقت دستور زیر ایراد میگیره و خطا میده :
ALTER TABLE tblCustomers ADD Payments# bigint NOT NULL CONSTRAINT Payments# DEFAULT (0)
من نمیخوام هیچ خطایی به وجود بیاد به همین دلیل به دنبال تابعی گشتم که بتونم نام ستون های جدول رو پیدا کنم تا در صورت عدم وجود ستون ، اون رو اضافه کنه.
تابعی که پیدا کردم این بود sp_columns_rowset ولی مشکل اینجاست که این تابع یک جدول میده و نمیتونم حتی ازش SELECT بگیرم تا وجود ستون مورد نظر رو بررسی کنم. از این تابع به این شکل استفاده کردم :
sp_columns_rowset tblCustomers,'',Paymentsحالا از شما کمک میخوام. خیلی ممنون میشم اگر کسی در این زمینه کمکم کنه.
من به یه مشکل برخوردم.
برنامه ای نوشتم که بعد از مدتی مجبور شدم توی بانک تغییراتی ایجاد کنم. بعضی از جداول رو تغییر دادم (یک یا چند فیلد اضافه کردم) حالا که نسخه جدید برنامه آماده شده و میخوام ارائه بدم باید فکری به حاله اطلاعات مشتری ها بکنم. به این فکر افتادم که دیتابیس مشتری رو آپدیت کنم و برای اینکار دستوراتی رو در قالب فایل آپدیت نوشتم که Stored Procedures ها رو پاک میکنه و از دوباره CREATE میکنه که ایکار به صورت خودکار انجام میشه اما مشکل من اینه که نمیتونم تشخیص بدم دیتابیس آپدیت شده یا نه و نمیخوام برم توی یکی از جدوال مثلا نسخه دیتابیس رو ثبت کنم تا متوجه آپدیت شدنش بشم. میخوام هر جدولی که تغییر دادم را ALTER کنم و فیلدهای مورد نظرم رو بهش اضافه کنم.
مشکل اصلی : وقتی توی فایل آپدیت دیتابیس میخوام جداول رو ALTER کنم ممکنه به جدولی بر بخورم که قبلا تصحیح شده و فیلد مورد نظرم درونش وجود داره اون وقت دستور زیر ایراد میگیره و خطا میده :
ALTER TABLE tblCustomers ADD Payments# bigint NOT NULL CONSTRAINT Payments# DEFAULT (0)
من نمیخوام هیچ خطایی به وجود بیاد به همین دلیل به دنبال تابعی گشتم که بتونم نام ستون های جدول رو پیدا کنم تا در صورت عدم وجود ستون ، اون رو اضافه کنه.
تابعی که پیدا کردم این بود sp_columns_rowset ولی مشکل اینجاست که این تابع یک جدول میده و نمیتونم حتی ازش SELECT بگیرم تا وجود ستون مورد نظر رو بررسی کنم. از این تابع به این شکل استفاده کردم :
sp_columns_rowset tblCustomers,'',Paymentsحالا از شما کمک میخوام. خیلی ممنون میشم اگر کسی در این زمینه کمکم کنه.