Просмотрите временную таблицу, составленную из хранимой процедуры

5
задан Vinod 24 September 2008 в 08:24
поделиться

4 ответа

Существует несколько видов временных таблиц, я думаю, что Вы могли использовать таблицу, которая не отбрасывается после того, как SP использовал ее. Просто удостоверьтесь, что Вы не называете тот же SP дважды, или Вы получите ошибку при попытке составить существующую таблицу. Или просто отбросьте временную таблицу после того, как Вы видите, что это довольно. Таким образом вместо того, чтобы использовать табличную переменную (@table) просто используйте #table или ##table


Из http://arplis.com/temporary-tables-in-microsoft-sql-server/:

Локальные временные таблицы

  • Префикс локальных временных таблиц с единственным знаком номера (#) как первый символ их имен, как (#table_name).
  • Локальные временные таблицы видимы только на текущей сессии, ИЛИ можно сказать, что они видимы только к текущему соединению для пользователя. Они удалены, когда пользователь разъединяется от экземпляров Microsoft SQL Server.

Глобальные временные таблицы

  • Глобальный префикс временных таблиц с двойным знаком номера (##) как первый символ их имен, как (##table_name).
  • Глобальные временные таблицы видимы ко всем сессиям, ИЛИ можно сказать, что они видимы любому пользователю после того, как они создаются.
  • Они удалены, когда все пользователи, ссылающиеся на таблицу, разъединяются от Microsoft SQL Server.
14
ответ дан 18 December 2019 в 05:40
поделиться

Отредактируйте хранимую процедуру для временного выбора * из временных таблиц (возможно в другую таблицу или файл, или только к области вывода), когда это работает..?

Можно затем возвратить его впоследствии. Если Вы не можете смешать с исходной процедурой, скопируйте ее и отредактируйте копию.

7
ответ дан 18 December 2019 в 05:40
поделиться

Чтобы подробно остановиться на предыдущих предложениях, чтобы Вы бросили данные в постоянную таблицу, Вы могли попробовать следующее:

-- Get rid of the table if it already exists
if object_id('TempData') is not null
  drop table TempData

select * into TempData from #TempTable
1
ответ дан 18 December 2019 в 05:40
поделиться

Это помогло мне.

SELECT * FROM #Name

USE [TEMPDB]
GO

SELECT * FROM syscolumns 
   WHERE id = ( SELECT id FROM sysobjects WHERE [Name] LIKE '#Name%')

это предоставляет подробную информацию всей временной таблицы

1
ответ дан 18 December 2019 в 05:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: