С# Вставить во временную таблицу

У меня есть временная таблица #PORTAL_PRODUTOS, в диспетчере sql я могу вставлять в нее значения, но когда я пытаюсь использовать C#, он возвращает мне ошибку о том, что объект #PORTAL_PRODUTOS отсутствует.

Мой код

string sql_insert = @"INSERT INTO #PORTAL_PRODUTOS (DESCRICAO, STRCODIGO, STRREFERENCIA) VALUES (@DESCRICAO, @STRCODIGO, @STRREFERENCIA)";

                        SqlCommand _cmd_insert = new SqlCommand(sql_insert, Conexao);

                        _cmd_insert.Parameters.AddWithValue("@DESCRICAO", tmpProdutoVO.DESCRICAO);
                        _cmd_insert.Parameters.AddWithValue("@STRCODIGO", tmpProdutoVO.STRCODIGO);
                        _cmd_insert.Parameters.AddWithValue("@STRREFERENCIA", tmpProdutoVO.STRREFERENCIA);

                        _cmd_insert.ExecuteNonQuery();
                        _cmd_insert.Parameters.Clear();
                        _cmd_insert.Dispose();

Ошибка в строке ExecuteNonQuery. "Недопустимое имя объекта #PORTAL_PRODUTOS"

Заранее благодарю за любую помощь.


person Community    schedule 11.09.2011    source источник


Ответы (2)


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

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

person gbn    schedule 11.09.2011

Вы должны попытаться создать глобальную временную таблицу, используя ##PORTAL_PRODUTOS

person Guldan    schedule 11.09.2011
comment
Это было бы небезопасно для нескольких одновременных вызовов - person gbn; 11.09.2011