Возврат табличной переменной из вызова хранимой процедуры CLR

У меня есть существующая CLR, которая использует XST для измельчения и проверки переданного XML. Я хочу зафиксировать точки данных (не заботясь о самом XML) в таблицу, которую можно напрямую вставить в таблицу базы данных. Итак, я бы назвал свою хранимую процедуру CLR, и она вернула бы 4 столбца с сотнями или строками, и я мог бы просто выполнить

insert into EXISTINGtable 
select * from TableReturnedFromCLRspCAll

Это не обязательно должен быть SP, это может быть UDF... мой реальный вопрос заключается в том, как заставить CLR возвращать таблицу. Мне также нужно иметь возможность передать определение таблицы. Итак, для таблицы, возвращаемой CLR... Я хотел бы, чтобы имена и типы 4 столбцов были частью вызова CLR в качестве переменных.

Если кто-то может помочь мне с этим, я был бы очень благодарен и очень впечатлен, потому что я расспрашивал некоторых очень опытных парней, и все они поднимают руки, когда я добираюсь до среды CLR с динамической таблицей И/ИЛИ CLR, возвращающей таблицу вообще.

Спасибо!


person user2263069    schedule 12.04.2013    source источник


Ответы (1)


Из MSDN http://msdn.microsoft.com/en-us/library/ms131094.aspx

Возврат табличных результатов

Чтобы отправить результаты запроса непосредственно клиенту, используйте одну из перегрузок метода Execute для объекта SqlPipe. Это наиболее эффективный способ возврата результатов клиенту, поскольку данные передаются в сетевые буферы без копирования в управляемую память.

Я не пробовал это из хранимой процедуры, но я вернул таблицу из CLR UDF, используя следующий пример. http://msdn.microsoft.com/en-us/library/ms131103.aspx

person user2296736    schedule 18.04.2013