|
Тема |
MSSQL update trigger проблем |
|
Автор |
devnul () |
|
Публикувано | 11.10.04 17:24 |
|
|
Знам за този проблем от преди, но чак сега ми се налага да не го заобикалям, а да го реша.
Опитвам се при update на конкретни полета в една таблица, да променя и съответстващи им полета в друга. Кодът в тригера е нещо такова:
UPDATE MyTable
SET
[field1] = (SELECT [field1] FROM inserted),
[feild2] = (SELECT [field2] FROM inserted)
FROM MyTable
JOIN deleted ON
MyTable.[field3] = deleted.[field3] AND
MyTable.[field1] = deleted.[field1] AND
MyTable.[field2] = deleted.[field2]
и това се изпълнява, ако имам само 1 променен ред в inserted (правя проверка).
Е, да, ама се случва да имам и повече редове в inserted. Та това ме води и до конкретния проблем: как да приложа правилните промени в правилните редове на MyTable. Как да разбера кой ред в inserted на кой ред в deleted съответства?
Трябва например да имам нещо такова:
[field1] = (SELECT [field1] FROM inserted WHERE ......?????) --или JOIN...?
Дали си зададох ясно въпроса?:)
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
| |
|
|
|