Доступ к TSQL создан таблицам #temp из хранимой процедуры CLR. Является ли это возможным? - PullRequest
5 голосов
/ 10 апреля 2009
  1. У меня есть хранимая процедура TSQL tsql__sp__A , которая выполняет две функции:

(a) Создает временную таблицу # tempTable , в которой есть данные SELECT из сложного запроса SELECT.

(b) Вызывает управляемую CLR хранимую процедуру clr__sp__B для каждой строки, которая выполняет вычисления для параметров строки.

Вопрос: можно ли получить доступ к # tempTable из процедуры CLR clr__sp__B , используя тот же контекст соединения? (Нет, я не хочу перемещать или создавать другую # tempTable внутри управляемой процедуры)

Спасибо.

Ответы [ 2 ]

2 голосов
/ 11 апреля 2009

Спасибо, Бой.

Однако я обнаружил, что когда вы используете «context connections = true», он открывает все SET

Читать статью Бол

// Контекстное соединение позволяет вам выполнять операторы SQL в том же контексте, в котором ваш код был вызван в первую очередь //

using (SqlConnection connection = new SqlConnection("context connection=true"))
{
    connection.Open();
    // access #temp table
}
0 голосов
/ 10 апреля 2009

Мы можем определить два типа временных таблиц в SQL.

  • местные
  • глобальный

О локальных временных таблицах:

Когда таблице предшествует один знак "#", она определяется как локальная временная таблица, и ее область действия ограничена сеансом, в котором она создается.

А по поводу глобальных временных таблиц:

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

Так что, возможно, вам следует попробовать использовать "##" для создания глобальной временной таблицы. ( Если существует разница между "контекстом соединения" и "сессией")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...