просто возникли головные боли при реализации чего-то в триггере на старой версии Sybase, и я подумал, может ли кто-нибудь помочь. Короче говоря, я хочу написать триггер, который будет вызывать другой sproc для каждой из затронутых записей (будь то вставка, удаление или и то, и другое [обновлено]).
Одним из способов сделать это в T-SQL (SQL Server) было бы использование курсора, но ни один из примеров курсоров, которые я нашел в Интернете, на самом деле не работает на Sybase ASA 6.0.4 - он либо не любит T-SQL вообще или вроде бы компилируется, но вообще ничего не делает (даже с патологически простыми, надуманными сценариями).
По сути, я хочу перебрать все «вставленные» записи таблицы (если есть) и для каждой из них Exec MySproc (inserted.keyid), а затем перебрать все «удаленные» записи таблицы (если любой) и снова для каждого Exec MySproc (deleted.keyid).
Есть ли у кого-нибудь пример такого рода действий или даже просто использования курсора только для чтения в ASA 6? В онлайн-руководстве, похоже, есть пример простого курсора, но на практике мне не удалось заставить этот пример работать. Я мог бы развернуть другой sproc в триггере (на самом деле это не так уж сложно), но это слишком сложно сделать как часть оператора типа «выбрать из вставленного...» - это действительно несколько строки кода сами по себе. Поэтому я думаю, что мне все равно нужен курсор.
РЕДАКТИРОВАТЬ: (29/12/09) - В конце концов я развернул код sproc в отчаянии, но я действительно хотел бы иметь пример рабочего курсора в Sybase ASA 6, потому что рано или поздно я столкнуться с чем-то, что я не могу легко развернуть. Итак, я предлагаю это за награду - кто-нибудь может дать мне рабочий пример? :-)