SQL CLR - табличная переменная или временная таблица против коллекции - PullRequest
2 голосов
/ 04 ноября 2011

Я создаю набор данных с сервера SQL - хранимая процедура, которая возвращает набор данных. Требуется несколько проходов, чтобы манипулировать данными так, как мне это нужно. Ранее я делал это в хранимом процессе T-SQL, но он становится слишком сложным, поэтому я перехожу к SQL CLR. В T-SQL у меня было несколько табличных переменных

declare @theData as ( col1 int, .... )

и я закончил оператором выбора, который присоединился к этим таблицам. В SQL CLR я мог бы вместо этого иметь список объектов:

List<MyObject> theData = new List<MyObject>();

Вопрос: было бы лучше использовать табличные переменные или коллекцию объектов .NET?

Я мог видеть, что вы не создаете вещи В ПАМЯТИ с использованием табличных переменных, скорее работа выполняется на сервере SQL. Синтаксически это не имеет значения для меня, потому что я могу делать операторы «пакетного обновления», используя Linq или SQL.

1 Ответ

2 голосов
/ 04 ноября 2011

Если вы можете использовать переменные таблицы, CTE и т. Д., Чтобы вернуть нужные вам данные, я бы придерживался этого.Использование CLR прекрасно, если вам нужно использовать функции управляемого кода (например, функции объектов), но может оказаться излишним, если вам не нужно его использовать.Вы можете посмотреть на это для обзора: http://msdn.microsoft.com/en-us/library/ms131045.aspx.

...