Как искать таблицу по схеме перед DROP - PullRequest
0 голосов
/ 04 июля 2018

Я пытаюсь проверить, существует ли таблица в определенной схеме, прежде чем удалить ее.

Например:

IF EXISTS(SELECT 1 FROM sys.tables WHERE name = 'table1')
BEGIN
   DROP TABLE schema1.table1
END

Несмотря на то, что DROP указывает схему, как я могу изменить проверку EXISTS, чтобы включить в нее также схему1?

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

Лично я предпочитаю использовать

IF (OBJECT_ID('Data.Capture') IS NOT NULL)
BEGIN
    PRINT 'Exists'
END

, поскольку это позволяет мне проверять не только таблицы, но и любые другие объекты, сохраняя при этом стандартную практику проверок существования объектов

0 голосов
/ 04 июля 2018

JOIN до sys.schemas:

IF EXISTS (SELECT 1
           FROM sys.tables t
               JOIN sys.schemas s ON t.schema_id = s.schema_id
           WHERE t.[name] = N'YourTable'
             AND s.[name] = N'YourSchema') BEGIN...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...