Другой, более низкий вариант, который требует меньше изменений кода:
Определите временное значение.
declare @scalarval int
select @scalarval = tableB.X from tableB where tableB.Y=@Y
insert into TableA (val1,val2)
values("value",@scalarval)
Однако вставка в синтаксис более понятна.