Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
ron_k
Зарегистрирован: 16.02.2005 Сообщения: 2
|
Добавлено: Ср Фев 16 2005 14:48 Заголовок сообщения: SQL 2000 уникальные идентификаторы |
|
|
есть ли такая переменная которая хранит значение созданного уникального идентификатора, или еще что нить но проблема следущая...
например была создана таблица table_1 (UID)
был написан триггер который копировал запись из table_1 в table_1_sh( типа теневая таблица) при каждом добавлении записи в UID...
проблема в том что он переносит ВСЕ строки...логично...
вот вопрос...как это лечится если хотелось чтобы он переносил тока ту строку, которая добавилась... |
|
Вернуться к началу |
|
 |
Motor
Зарегистрирован: 18.01.2005 Сообщения: 36 Откуда: Оттуда
|
Добавлено: Чт Фев 17 2005 09:14 Заголовок сообщения: |
|
|
Наверное надо написать триггер, который отслеживает изменение полей в таблице.
Потом написать процедурку, которая будет эти измененые поля шлепать в таблицу синхронизации, а оттуда уже можно обновлять и твою таблицу... _________________ Танцуют Все! |
|
Вернуться к началу |
|
 |
ron_k
Зарегистрирован: 16.02.2005 Сообщения: 2
|
Добавлено: Чт Фев 17 2005 15:00 Заголовок сообщения: теневые таблицы |
|
|
Может просто подскажете как можно создать теневые таблицы или дадите сслыку где про это написано... |
|
Вернуться к началу |
|
 |
Ната!
Зарегистрирован: 02.11.2004 Сообщения: 4
|
Добавлено: Пт Фев 25 2005 23:17 Заголовок сообщения: |
|
|
поможет следующее:
При выполнении команд добавления, изменения, удаления записей сервер создает две специальные таблицы: inserted и deleted. В них содержатся строки, которые будут вставлены или удалены по завершению транзакции. Структура таблиц inserted и deleted идентична стуктуре таблиц, для которых определяется триггер. Для каждого триггера создается свой комплект таблиц inserted и deleted, поэтому никакой другой триггер не сможет полцчить к ним доступ.
1. команда INSERT - в таблице inserted содержатся все строки, которые пользователь пытается вставить в таблицу, в таблице deleted - ни одной строки; после завершения триггера все строки из таблицы inserted переместятся в исходную таблицу.
2. команда DELETE - в inserted - ни одной строки, в deleted - все строки, которые пользователь пытается удалить.
3. команда UPDATE - в deleted - значения строк, которые будут удалены при успешном завершении триггера. Новые значения строк содержатся в inserted.
Кол-во измененных строк можно узнать -@@ROWCOUNT
Вот и все!
Желаю успехов!
Только обязательно сообщите, если все получится! |
|
Вернуться к началу |
|
 |
|