Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
UPDATE table INSERTED!!!!! Ну очень нужно. Народ помогите.
|
|||
|---|---|---|---|
|
#18+
Привет всем. Я может всем надоел, но все-таки очень нужно. Еще раз о проблеме. Есть две таблицы Т1 и Т2 При добавлении в таблицу Т2 нужно выполнить добавление(я) в таблицу Т1 А полученные Ид будут использованы как PKID при добавлении в Т2. Я перед MSSQL работал с INFORMIX там это сделать было очень просто. В сиквеле я уже забадался. Фактически нужно обновить поле PkId в таблице INSERTED. Но ее обновлять нельзя (((((((((((((((((((((((((((((((((((((((((( Пока у меня есть только один вариант. 1. Тригер INSTEAD OF ON T2 2. Из INSERTED делаем TempTable 3. По TempTable делаем курсор 4. Пробегаем по всем записям и обновляем pkId на GetNewID 5. Делаем INSERT T2 FROM SELECT * #TempTable Но блин это же сколько разных шагов. Народ помогите! Может у кого есть какие идеи или опыт как положительный так и отрецательный. Спасибо... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2001, 09:52 |
|
||
|
UPDATE table INSERTED!!!!! Ну очень нужно. Народ помогите.
|
|||
|---|---|---|---|
|
#18+
Шаг 4 не ясен Зачем курсор. Это замедляет. Можно же из временной insert в T1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2001, 10:14 |
|
||
|
UPDATE table INSERTED!!!!! Ну очень нужно. Народ помогите.
|
|||
|---|---|---|---|
|
#18+
1. То, что добавление в таблицу на стороне Foreign Key должно вызывать добавление Primary key приводит к большим подозрениям на ошибки в стратегии проектирования структуры таблиц. 2. Таблица Inserted является НЕ модифицируемой. И смысла в ее модифицируемости не т никакого и быть не может. Это просто "отчет о произведенных изменениях" в базовой таблице. Какой смысл подправлять отчет - ведь результаты от этого не изменятся (если только для самообмана). 3. Без Instead-триггера тут действительно не обойтись. Только пункты 3, 4 и 5 - под вопросом. Кроме ID наверняка что-то еще помещается в таблицу Т1? Как ты определяешь, что именно должно быть добавлено? Если только фраза "новая запись", то выглядит это примерно так: create trigger ttt on T2 instead of insert as set nocount on insert into T1 (ID, Name) -- Добавляем только записи с НОВЫМИ идентификаторами в Т1 select distinct ID, 'Новая запись' from Inserted where not ID in (select ID from T1) insert into T2 (ID, Fld1, Fld2, Fld3) -- Добавляем добавленные записи в Т2 select * from Inserted ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2001, 10:36 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32006710&tid=1826624]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
| others: | 224ms |
| total: | 359ms |

| 0 / 0 |
