Вы переводите строку"SELECT TOY_PO FROM tblproducts...
" в деньги, а не результат этого выполнения запроса. Ваш текущий код не выполняет его
Нет более чистого способа сделать это, потому что вы не должны полагаться на такие динамические имена столбцов. Проще говоря, SQL не предназначен для такой работы
...
SET @strCMD = 'SELECT ''name'', ' + @strResult + ' FROM tblproducts WHERE product_name=''something'''
INSERT INTO tblStuff (Name,Amount)
EXEC (@strCMD)
или
...
SET @strCMD = '
INSERT INTO tblStuff (Name,Amount)
SELECT ''name'', ' + @strResult + ' FROM tblproducts WHERE product_name=''something'''
EXEC (@strCMD)