PDA

View Full Version : تغییر در همه جداول مربوط



reza3reza3
سه شنبه 18 خرداد 1389, 18:06 عصر
سلام
چند تا جدول دارم ، فیلد پرسنلی تو یه جدول یکتاست و تو بقه جداول هم وجود داره ،
می خواهم وقتی اطلاعات مربوط به پرسنل که تو جداول وجود داره تغییر دادم تو بقیه جدولهای که اطلاعات این پرسنل وجود داره هم تغییر کنه و لازم نباشه که تک تک برای تغییر دادن اطلاعات مربوط به جدولهایی که اطلاعات وجود دارند برم .
البته تا حدودی با نحوه کار دیاگرام و کلید اصلی و خارجی آشنام ولی هر کاری می کنم
انجام نمی شه :متفکر:.
نحوه کار و کد رو چطوری بنویسم.

محمد سلیم آبادی
سه شنبه 18 خرداد 1389, 21:09 عصر
سلام،
من احساس می کنم یا بانکتان را اشتباه طراحی کردین یا اینکه اشتباهی توضیح دادین.
فرض کنید جدولی به نام پرسنل داریم که یک شماره به عنوان کلید اصلی دارد. حالا در جداول دیگر با کمک همین شماره ما به این جدول پرسنل ارجاع میدهیم در واقع هر موقع بخواهیم اطلاعات مرتبط با پرسنل را از جدول دیگر بدست آوریم یک JOIN بین دو جدول میزنیم.

حالا ممکن است شماره ی پرسنل تغییر کند در جدول اصلی، در اینجا اگر قید کلید خارجی شما دارای ویژگی Cascade باشد (که بطور پیشفرض No Action) است بطور اتوماتیک اطلاعات مرتبط در جداول دیگر نیز بروز رسانی می شوند. در غیر اینصورت از انجام این تغییر ممانعت به عمل میاد.

اگر از طریق T-SQL کلید خارجی برای جدول تعریف می کنید (بعد از ساخت جدول)، کدی شبیه به این میشود:


ALTER TABLE table_name
ADD Constraint FK_foreignKeyName
FOREIGN KEY ( FK_name)
REFERENCES master_table (uniqueOrPK_column)
ON UPDATE cascade
ON DELETE cascade



ولی اگر بشکل Visual میخواهید اینکار را بکنید می تونید در پنجره ی Design برید و روی یکی از ستون ها راست کلیک کرده و سپس گزینه ی Relationship را از منوی باز شده انتخاب کنید سپس جایی وجود دارد به عنوان Insert and update specification که می تونید گزینه ی مطلوب را انتخاب کنید.

reza3reza3
چهارشنبه 19 خرداد 1389, 20:58 عصر
برای تغییر حتما باید کلید خارجی و اصلی تعریف کنم،و این مراحل رو برم.
یه مقاله یا توضیح کاملتر که مراحل رو در این رابطه (دیاگرام ، کلید اصلی ،خارجی ، تغییرات در جداول و ..)بیشتر توضیح داده باشه از کجا می تو نم پیدا کنم:خجالت:

محمد سلیم آبادی
چهارشنبه 19 خرداد 1389, 21:06 عصر
برای تغییر حتما باید کلید خارجی و اصلی تعریف کنم،و این مراحل رو برم.

باید یک لینک بین جداول وجود داشته باشه تا این تغییرات ایجاد بشه.
کلید اصلی که همه جداول باید داشته باشند این یک الزام در طراحی بانک است.

مقاله ای که سراغ ندارم، ولی کار خیلی پیچیده نیست. کافیه هر جدول یک کلید اولیه داشته باشه سپس روی یک دیاگرام ایجاد می کنید و جداول را در ان Add میکنید سپس با کمک Drag and Drop میتونید link بین جداول ایجاد کنید. و در پنجره ی Properties همان دیاگرام میتونید این ویژگی cascade را انتخاب کنید.

reza3reza3
شنبه 17 مهر 1389, 10:00 صبح
با تشکر
وقتی این کار رو انجام می دهم فقط تغییر در کلید خارجی و اصلی انجام میشه.
چکار باید کنم وقتی مثلا یکی از فیلدهای مربوط به کلید مثل اسم رو تغییر دادم در جدولهایی که اسم قبلا ثبت شده و وجود داره هم تغییر کنند با توجه به کد پرسنلی