Хранимые процедуры CLR: альтернативы SqlContext.Pipe.SendResultsStart / SendResultsRow / SendResultsEnd? - PullRequest
3 голосов
/ 13 мая 2009

Сходный вопрос к предыдущему по той же теме. В хранимой процедуре CLR я собираю коллекцию объектов, представляющих набор данных после сложной фильтрации. Затем эта коллекция «переводится» в результате с помощью цикла SqlContext.Pipe.SendResultsStart / SendResultsRow / SendResultsEnd и доставляется.

Несмотря на то, что это работает должным образом, из-за цикла и т. Д. Оно не выглядит оптимальным Есть ли лучшие альтернативы, скажем, для преобразования коллекций в наборы результатов SQL на лету?

Заранее спасибо.

1 Ответ

0 голосов
/ 25 декабря 2013

Лучшая альтернатива - организовать коллекцию в XML-документе (что легко сделать с помощью библиотек .NET). Затем можно использовать метод sql node xml для анализа XML-документа и возврата набора результатов. Вы можете использовать библиотеку LINQ для преобразования коллекции в XML. Уровень дизайна будет меняться в зависимости от контекста. но я нашел этот способ очень эффективным.

...