Помогите с SQL

интернет Компьютеры программирование программы sql

суть вопроса есть таблица login с полями id,login,pass
необходимо создать хранимую процедуру, которая будет делать выборку по разным стобцам (которые задают пользователи. вот что у меня получилось:
ALTER PROCEDURE dbo.StoredProcedure20
(
@log varchar(max),
@st1 varchar(max) output
)
AS
select @st1 from log where Login=@log
RETURN
но он выдает не результат селекта, а знаение параметра st1 которое и так ввел пользователь.
помогите оч надо.

Примечание:
Что неужели некто не знает?

Примечание:
Попробуй так:
ALTER PROCEDURE dbo.StoredProcedure20
(
@log varchar(max),
@st1 varchar(max) output
)
AS
exec 'select ' + @st1 + ' from log where Login=@log'
RETURN
Но это довольно небезопасный метод если параметр @st1 приходит от пользователя. Обязательно убедись что этот параметр не может содержать каких-то SQL скриптов, а является просто именем столбца (желательно ещё и допустимым именем)

Неработает пишет, неверный синтаксис около конструкции Select
Ответы:
Попробуй так:
ALTER PROCEDURE dbo.StoredProcedure20
    (
      @log varchar(max),
@st1 varchar(max) output
     )
AS
exec 'select ' + @st1 + ' from log where Login=@log'
RETURN
Но это довольно небезопасный метод если параметр @st1 приходит от пользователя. Обязательно убедись что этот параметр не может содержать каких-то SQL скриптов, а является просто именем столбца (желательно ещё и допустимым именем)
попробуй поэкспериментировать так (без процедуры):


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.