Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
31.05.2001, 09:52
|
|||
|---|---|---|---|
|
|||
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, 10:14
|
|||
|---|---|---|---|
|
|||
UPDATE table INSERTED!!!!! Ну очень нужно. Народ помогите. |
|||
|
#18+
Шаг 4 не ясен Зачем курсор. Это замедляет. Можно же из временной insert в T1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
31.05.2001, 10:36
|
|||
|---|---|---|---|
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/search_topic.php?author=ChA%2B&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
27ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 645ms |
| total: | 753ms |

| 0 / 0 |
