Существует недокументированная хранимая процедура sp_MSForEachDB
, которая при вызове передачи строки в качестве параметра выполнит эту строку, подставив ?
для имени базы данных.
например:.
exec sp_MSForEachDB 'use ?; select * from INFORMATION_SCHEMA.TABLES'