Опитвам се да внедря каскадна актуализация и потърсих онлайн ограничението Fk. Намерих решения като http://sqlandme.com/2011/08/08/sql-server-how-to-cascade-updates-and-deletes-to-related-tables/
и този блог обяснява процеса доста добре. Не съм сигурен, че тази доза работи само на PK или можем да настроим каскадното актуализиране/изтриване и на полета, които не са pk.
Имам две маси.
tblregistration:
- UserID (PK)
- потребителско име
- CompName
и т.н
tblposting_detail:
- Bidid (pk)
- UserID (Fk с tblregistration)
- CompName
Сега, когато потребител редактира своя профил и актуализира името на фирмата, което означава актуализиране на compname
в tblregistration
, това, което искам тук е compname
да се актуализира и в моя tblposting_detail
на същия потребител, който е актуализирал своя профил.
Прочетох някаква статия, в която се казва, че каскадното актуализиране и изтриване понякога дава неочаквани резултати, така че не е за предпочитане през цялото време и е по-добре да имате два различни SQL оператора за актуализиране вместо каскадно актуализиране.
Може ли някой да ми помогне да разбера процеса и най-добрата практика за този конкретен проблем.
Благодаря.
CompName
в таблицатаtblposting_detail
? - person gvee   schedule 03.12.2013CASCADE
може да се прилага само към външни ключове - и виждайки, че вашатаcompname
колона не е FK, не можете да направите това. Също така: защоcompname
се съхранява на две места и трябва да се актуализира два пъти? Това е лош дизайн - не е нормализиран -compname
трябва да се съхранява само веднъж, така че ако го актуализирате - готово. - person marc_s   schedule 03.12.2013