Существует еще одна (не обязательно симпатичная) альтернатива:
IF (@source_database = 'wibble')
USE wibble;
ELSE IF (@source_database = 'wibble2')
USE wibble2;
ELSE
RAISERROR(....)
SELECT * FROM dbo.myTable
Если у вас есть какое-то реальное количество баз данных, это может быть утомительно.Но, тем не менее, это вариант.