I don't think there is a way to do it other than using dynamic SQL. First select columns:
declare @columns nvarchar(max);
select @columns = stuff(
(select ', ' + c.name
from sys.tables t
join sys.columns c on t.object_id = c.object_id
join sys.types ty on c.system_type_id = ty.system_type_id
where t.name = 'A'
and ty.name not in ('text', 'ntext', 'xml', 'image')
for xml path(''))
, 1, 2, '');
Then run the query:
declare @sql nvarchar(max);
set @sql = 'select ' + @columns + ', ''table a first'' as where_missing from A';
exec (@sql);