Пожалуйста, смотрите ниже подходы,
Подход 1: Использование представления INFORMATION_SCHEMA.TABLES
Мы можем написать запрос, как показано ниже, чтобы проверить, существует ли таблица клиентов в текущей базе данных.
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = N'Customers')
BEGIN
PRINT 'Table Exists'
END
Подход 2: Использование функции OBJECT_ID ()
Мы можем использовать функцию OBJECT_ID (), как показано ниже, чтобы проверить, существует ли таблица клиентов в текущей базе данных.
IF OBJECT_ID(N'dbo.Customers', N'U') IS NOT NULL
BEGIN
PRINT 'Table Exists'
END
Подход 3. Использование каталога sys.Objects
Мы можем использовать представление каталога Sys.Objects, чтобы проверить существование таблицы, как показано ниже:
IF EXISTS(SELECT 1 FROM sys.Objects WHERE Object_id = OBJECT_ID(N'dbo.Customers') AND Type = N'U')
BEGIN
PRINT 'Table Exists'
END
Подход 4: Использование sys.Tables Catalog View
Мы можем использовать представление каталога Sys.Tables, чтобы проверить существование таблицы, как показано ниже:
IF EXISTS(SELECT 1 FROM sys.Tables WHERE Name = N'Customers' AND Type = N'U')
BEGIN
PRINT 'Table Exists'
END
Подход 5. Избегайте использования sys.sysobjects Системная таблица
Мы должны избегать использования системной таблицы sys.sysobjects напрямую, прямой доступ к ней будет устаревшим в некоторых будущих версиях Sql Server. Согласно ссылке Microsoft BOL, Microsoft предлагает использовать представления каталога sys.objects / sys.tables вместо системной таблицы sys.sysobjects напрямую.
IF EXISTS(SELECT name FROM sys.sysobjects WHERE Name = N'Customers' AND xtype = N'U')
BEGIN
PRINT 'Table Exists'
END
указано от: http://sqlhints.com/2014/04/13/how-to-check-if-a-table-exists-in-sql-server/