Базовая техника при накоплении неких данных состоит в записи их во врменную таблицу с именем, начинающимся с #, или с именем с постфиксом NEWID, а затем извлечения накопленных данных. Базовая техника выглядит примерно вот так.
Есть и более изощренная техника, позволяющая избежать временных таблиц. Для этого сначала придется задействовать вот такую мою функцию десериализации - Split, которая преобразует строку в табличную функцию.
И вот, наконец, реальная процедура, работающая по такой технике:
Как видите, эта процедура накапливает данные (ключи отобранных записей) не в промежуточной табле, а в строке с именем @Result, откуда в последней строке и выводится выходной рекордсет. Обратите внимание, что даже джоины в курсорах выполнены этой же функцией.
<SITEMAP> <MVC> <ASP> <NET> <DATA> <KIOSK> <FLEX> <SQL> <NOTES> <LINUX> <MONO> <FREEWARE> <DOCS> <ENG> <CHAT ME> <ABOUT ME> < THANKS ME> |