Как часть моей бизнес-логики, я должен извлечь более 2000 строк из таблицы SQL. Проведите эти ряды через некоторую сложную процедурную бизнес-логику (да, она должна быть процедурной, и все методы бегущей суммы, которые я исследовал до сих пор, не снижают эффективность). Затем я должен обновить базу данных и вернуть результаты.
Использование SQLDataReader - данные передаются из SQL, и в мою логику - это прекрасно работает.
Логика перебирает данные и вносит необходимые изменения.
Теперь, чтобы сохранить изменения - я действительно не хочу отправлять результат, заполнив параметры в операторе UPDATE. Если бы у меня были результаты в SQL, я бы соединял временную таблицу с базовой таблицей и выполнял все обновления в одной инструкции TSQL Update. По моей «таблице» в SQL CLR, а базовая таблица закончена на стороне SQL.
Я ознакомился с методами сериализации результатов в XML и перенес их в переменную varchar, но я использую SQL Server 2008 R2.
Я рассмотрел UDT и параметры табличных значений - но вы не можете использовать их для передачи данных между SQL CLR и SQL.
Если предполагается, что SQL CLR будет использоваться со сложной бизнес-логикой - разве нет лучшего способа отправки данных? Я еще не нашел пример, который напрямую затрагивает эту проблему или говорит с ней.