Если у вас есть список имен таблиц в проверьте, поместите его в переменную таблицы и используйте код, аналогичный приведенному ниже:
declare @t table (
SchemaName sysname not null,
ObjectName sysname not null,
primary key (ObjectName, SchemaName)
);
-- Populate this with your data
insert into @t (SchemaName, ObjectName)
values
(N'dbo', N'SomeTable1'),
(N'dbo', N'AnotherTable2'),
(N'abc', N'DEF');
if exists (
select 0 from @t t
left join INFORMATION_SCHEMA.TABLES xt on xt.TABLE_SCHEMA = t.SchemaName
and xt.TABLE_NAME = t.ObjectName
where xt.TABLE_NAME is null
)
select concat(t.SchemaName, N'.', t.ObjectName) as [MissingObject]
from @t t
left join INFORMATION_SCHEMA.TABLES xt on xt.TABLE_SCHEMA = t.SchemaName
and xt.TABLE_NAME = t.ObjectName
where xt.TABLE_NAME is null;
Вышеупомянутый подход может быть легко расширен для нескольких видов объектов. Вы можете заменить INFORMATION_SCHEMA.TABLES
на sys.all_objects
и соответствующим образом изменить сравнение имен схемы.