Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Обновление дерева
|
|||
|---|---|---|---|
|
#18+
День добрый Есть таблица BalansStruct - ID, Owner, Name, FullName 1 0 Структура Структура 2 1 LUMENE Структура \ LUMENE 3 1 HERBINA Структура \ HERBINA 4 2 Шампунь Структура \ LUMENE \ Шампунь 5 4 100 мл Структура \ LUMENE \ Шампунь \ 100 мл Необходимо написать триггер, который при изменении названия ветки пересчитает полные пути для ее потомков Написал ф-ию CREATE FUNCTION GetFullName(@FromID INT, @ToID INT) RETURNS Varchar(1000) AS BEGIN DECLARE @TempID INT DECLARE @Result Varchar(1000) SET @TempID=@FromID SET @Result='' WHILE @TempID<>@ToID AND @TempID<>0 BEGIN IF @Result<>'' SET @Result=' \ '+@Result SET @Result=(SELECT Name FROM BalansStruct WHERE ID=@TempID)+@Result SET @TempID=(SELECT Owner FROM BalansStruct WHERE ID=@TempID) END Return(@Result) END Написал триггер CREATE TRIGGER [BalansStruct_U] ON [dbo].[BalansStruct] FOR UPDATE AS UPDATE BalansStruct SET BalansStruct.FullName=dbo.GetFullName(BalansStruct.ID,0) FROM BalansStruct, INSERTED WHERE BalansStruct.Owner=INSERTED.ID Если я меняю LUMENE на L (к примеру), то таблица принимает след вид 1 0 Структура Структура 2 1 LUMENE Структура \ L 3 1 HERBINA Структура \ HERBINA 4 2 Шампунь Структура \ L \ Шампунь 5 4 100 мл Структура \ LUMENE \ Шампунь \ 100 мл - вот эта ветка не обновляется !!!!!!!!!!!! То есть триггер срабатывает только для прямых потомков. Почему не срабатывает вложенный триггер ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2001, 13:39 |
|
||
|
Обновление дерева
|
|||
|---|---|---|---|
|
#18+
1. Посмотри в свойствах БД, установлен ли флажок "nested triggers". 2. Триггер написан неправильно. Нет условия выхода из рекурсии. Когда включишь рекурсивные триггеры, он будет приводить к бесконечной рекурсии и вываливаться с ошибкой о нарушении допустимой вложенности рекурсивных вызовов триггера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2001, 14:11 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=3528&tid=1824867]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
| others: | 275ms |
| total: | 440ms |

| 0 / 0 |
