2009-07-30 2 views
0

Я часто получаю ошибки:Как определить, какие временные таблицы в настоящее время находятся в области действия в SQL Server?

Msg 208, Level 16, State 0, Line 1 
Invalid object name '#foo'. 

Msg 3701, Level 11, State 5, Line 1 
Cannot drop the table '#foo', because it does not exist in the system catalog. 

Как я знаю, какие временные таблицы существуют в области видимости? Они obviosly не отображаются в SSMS, как это делают базовые таблицы.

ответ

4

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

IF object_id('tempdb..#foo') IS NOT NULL 
1

Расширение ответ Брэндона ...

В SSMS окне запроса 1:

CREATE TABLE #foo (bar int) 
GO 
CREATE TABLE ##bar (foo int) 
GO 
SELECT object_id('tempdb..#foo'), object_id('tempdb..##bar') 
GO 

В окне 2:

SELECT object_id('tempdb..#foo'), object_id('tempdb..##bar') 

##bar видна в обеих сессиях, как и ожидалось , #foo только в локальной сессии.

 Смежные вопросы

  • Нет связанных вопросов^_^