Передача результатов запроса в функцию CLR SqlFunction - PullRequest
2 голосов
/ 12 августа 2011

Эй, ребята, у меня есть хранимая процедура, которая должна передать набор результатов из другой хранимой процедуры в UDF, которая в свою очередь вызывает функцию CLR SqlFunction.То, что я не могу понять, как это сделать, это как передать результирующий набор в мою CLR SqlFunction.Я не вижу таблицы SqlType, и я не могу найти какие-либо примеры в Интернете, возможно, я ищу неправильно?Также, если вы посмотрите на последние переданные параметры, вот где у меня проблемы.Не знаю, как передать в наборе результатов.Спасибо!

<SqlFunction(DataAccess:=DataAccessKind.Read, SystemDataAccess:=SystemDataAccessKind.Read)> _
Public Function GetMatchedConstituents(ByVal ID As SqlGuid, ByVal CustomID As SqlString,
                                       ByVal KeyName As SqlString, ByVal FirstName As SqlString,
                                       ByVal MiddleName As SqlString, ByVal AddressBlock_Home As SqlString,
                                       ByVal AddressBlock_Business As SqlString, ByVal PostCode_Home As SqlString,
                                       ByVal PostCode_Business As SqlString, ByVal Phone_Home As SqlString,
                                       ByVal Phone_Business As SqlString, ByVal ResultSet As [WhatType? There isnt a SqlTable like I assumed]) As IEnumerable

    'do duplicate comparing logic here

End Function

1 Ответ

1 голос
/ 12 августа 2011

См. Этот вопрос Передать таблицу в качестве параметра в SQLCLR TV-UDF , который имеет ссылки на другую связанную информацию.Вкратце, TVP в настоящее время не поддерживается в SQL CLR.

Если набор результатов достаточно мал, вы можете преобразовать его в тип XML и передать его в качестве параметра в функцию SQL CLR (SqlXml).

Вы также можете настроить хранимые процедуры для создания временных таблиц для совместного использования.Это небрежно, но может оказаться единственным вариантом.

...