Не ясно, ожидаете ли вы, что возвращаемые значения будут помещены в переменные @ или вы пытаетесь динамически указать, какие столбцы вы хотите выбрать. В хранимой процедуре Sql Server вы обычно возвращаете набор результатов, а не набор отдельных переменных. Синтаксис, который вы используете, не будет работать, если вы хотите, чтобы значения столбцов возвращались, поскольку то, что у вас есть, будет динамически определять, какие столбцы требуются, основываясь на именах столбцов, передаваемых в хранимую процедуру. И это не будет работать, поскольку хранимая процедура должна знать, какие столбцы вы собираетесь использовать, когда она анализируется и хранится. Теперь условие исключений будет сработать, если возникнет проблема с чтением из базы данных (обрыв связи, ошибка диска и т. Д.), И в этом случае ни одно из значений столбца не будет известно.
Используйте инструмент Sql Query Analyzer (в меню «Инструменты» в SqlManager после выбора базы данных), чтобы определить свою хранимую процедуру и протестировать ее. Если вы установили документацию при установке SqlManager, перейдите в «Пуск»> «Программы»> Microsoft Sql Server> Books Online и откройте узел «Transact-SQL Reference» для получения документации о том, что можно сделать.