SqlCommand command;
...
command.CommandText =
"SELECT Foo "
+ "INTO #tmp_table "
+ "FROM FooTable;"
command.ExecuteNonQuery();
command.CommandText =
"SELECT * FROM #tmp_table;"
command.ExecuteReader();
Странность в работе со временными таблицами
Представим: прога на C#, база на MSSQL.
В определенный момент делаем нечто такое:
Код:
Получаем эксепшн с радостным уведомлением о том, что объект "#tmp_table" не существует.
Сделав же:
Код:
SqlCommand command;
...
command.CommandText =
"SELECT Foo "
+ "INTO #tmp_table "
+ "FROM FooTable; "
+ "SELECT * FROM #tmp_table;"
command.ExecuteNonQuery();
...
command.CommandText =
"SELECT Foo "
+ "INTO #tmp_table "
+ "FROM FooTable; "
+ "SELECT * FROM #tmp_table;"
command.ExecuteNonQuery();
Получаем нормальный ридер из этой временной таблицы.
Не подскажете, в чем загвоздка? Неужели временная таблица не живет между вызовами ExecuteXXX()?
Временная таблица живет в рамках одной транзакции.