Используя функцию Object_id() С#tables Я хочу убедиться, что временная таблица существует в моей базе данных или нет. Я попытался использовать функцию OBJECT_ID(), но кажется, что я не могу использовать ее с временными таблицами. Как я могу решить эту проблему? Ответ 1 Использование OBJECT_ID('tempdb..#foo') чтобы получить идентификатор для временной таблицы при запуске в контексте другой базы данных. Ответ 2 Когда вызывается OBJECT_ID, для таблицы временного стола/хэша TEMPDB он должен быть указан, если он уже не работает с базой данных. Я проверяю SQL2008 и проверяю ниже. USE SampleDB create table #tt1 (dummy int) select OBJECT_ID('SampleDB..#tt1') -- returns NULL select OBJECT_ID('tempdb..#tt1') -- returns ID Ответ 3 Из Кодовая книга SQL Server How do you check if a temp table exists? You can use IF OBJECT_ID('tempdb..#temp') IS NOT NULL SQL Script --Check if it exists IF OBJECT_ID('tempdb..#temp') IS NOT NULL BEGIN PRINT '#temp exists!' END ELSE BEGIN PRINT '#temp does not exist!' END Ответ 4 Используйте это, чтобы изменить контекст вызова OBJECT_ID на tempdb OBJECT_ID('tempdb..#table') OBJECT_ID в MSDN показывает 3 имени объекта объекта. В этом случае вы можете опустить schema_name OBJECT_ID ( '[ database_name . [ schema_name ] . | schema_name . ]
Ответ 1 Использование OBJECT_ID('tempdb..#foo') чтобы получить идентификатор для временной таблицы при запуске в контексте другой базы данных.
Ответ 2 Когда вызывается OBJECT_ID, для таблицы временного стола/хэша TEMPDB он должен быть указан, если он уже не работает с базой данных. Я проверяю SQL2008 и проверяю ниже. USE SampleDB create table #tt1 (dummy int) select OBJECT_ID('SampleDB..#tt1') -- returns NULL select OBJECT_ID('tempdb..#tt1') -- returns ID
Ответ 3 Из Кодовая книга SQL Server How do you check if a temp table exists? You can use IF OBJECT_ID('tempdb..#temp') IS NOT NULL SQL Script --Check if it exists IF OBJECT_ID('tempdb..#temp') IS NOT NULL BEGIN PRINT '#temp exists!' END ELSE BEGIN PRINT '#temp does not exist!' END
Ответ 4 Используйте это, чтобы изменить контекст вызова OBJECT_ID на tempdb OBJECT_ID('tempdb..#table') OBJECT_ID в MSDN показывает 3 имени объекта объекта. В этом случае вы можете опустить schema_name OBJECT_ID ( '[ database_name . [ schema_name ] . | schema_name . ]