проверить, существует ли таблица при выборе и вставке SQL Server - PullRequest
1 голос
/ 18 февраля 2011

Здравствуйте, у меня динамический запрос, такой как

SET  @template = 'SELECT x AS X,... INTO temporalTable FROM' + @table_name 

Тогда я выполняю это

EXEC (@template)
  • Как мне проверить, если temporalTable уже существует, если да, отбросьте его?

Ответы [ 3 ]

2 голосов
/ 18 февраля 2011

Просто используйте OBJECT_ID

IF OBJECT_ID('temporalTable') IS NOT NULL
   DROP TABLE temporalTable

Нет необходимости запрашивать какие-либо таблицы или делать какие-либо агрегации.

1 голос
/ 18 февраля 2011
IF EXISTS (SELECT 1 
    FROM INFORMATION_SCHEMA.TABLES 
    WHERE TABLE_TYPE='BASE TABLE' 
    AND TABLE_NAME='tablename') 
        SELECT 'tablename exists.' 
ELSE 
        SELECT 'tablename does not exist.'
1 голос
/ 18 февраля 2011

Использовать информационную схему или sp_help функцию.

Я бы предпочел информационная схема , поскольку это SQL ANSI, и вы можете перенести код в другие базы данных:

select count(1)
  from information_schema.tables 
 where table_name = 'temporalTable';

sys.tables - это особая опция SQLServer, аналогичная схеме информации, которую вы также можете исследовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...