Немного магии динамического SQL - все, что нужно:
Создайте объединение всех запросов с нужными вам таблицами, каждый из внутренних запросов должен иметь where exists
, чтобы убедиться, что хотя бы одна строка в них имеет значение sku
, которое также находится в таблице tblproduct
:
DECLARE @Sql nvarchar(max) = '';
SELECT @Sql = @Sql +N'UNION ALL SELECT '''+ table_name +N''' As TableName FROM '+ QUOTENAME(table_name) +
N' As P WHERE EXISTS (SELECT 1 FROM tblProducts WHERE tblProducts.Sku = P.Sku) '
FROM information_schema.tables
WHERE table_name LIKE 'ABC_%'
-- Remove the first "UNION ALL"
SELECT @Sql = STUFF(@Sql, 1, 10, '')
-- When dealing with Dynamic SQL, Print is your best friend
PRINT @Sql
-- Unremark once you check the printed SQL is what you wanted
--EXEC(@SQL)