2010-12-10 2 views
13

С клиентского приложения я tyipically сделать:Как написать параметризованный запрос в студии управления?

select * from table where Name = :Parameter 

, а затем перед выполнением запроса я

:Parameter = 'John' 

Эти параметры не являются поиск & Заменить, но реальные параметры передаются на сервер. Поскольку мне нужно подробно проверить некоторые из этих запросов, как я могу написать запрос в студии управления?

Я хочу написать запрос с параметрами и указать значение для параметра. Как это может быть сделано?

Update:

Чтобы удалить путаницы здесь добавить информацию, чтобы лучше выразить myseld.

когда я выполнить обычный запрос я вижу в SQL Server Profiler

select * from table where Name = 'John' 

в то время, когда я исполняю параметризованным запрос я вижу это:

exec sp_executesql N'select * from table 
where Name = @P1',N'@P1 varchar(8000)','John' 

Вот почему я говорю, что это не поиск и замена.

+0

Обновление делает в значительной степени то, что я показал вам в своем ответе ... – 2010-12-10 09:23:43

+0

Хорошо, что вы правы. Итак, что я получил, так это то, что когда клиентское приложение использует параметры как-то, это переменные decalres с DELCARE. Очень интересно, это помогает в решении проблемы, которую я имею. – LaBracca 2010-12-10 11:42:44

ответ

21

Как о чем-то вроде

DECLARE @Parameter VARCHAR(20) 
SET @Parameter = 'John' 

SELECT * 
FROM Table 
WHERE Name = @Parameter 
0

С добавлением к Адриаане Stander ответ в программном коде, т.е., например, если вы используете C# чтобы вы пройти @parameter с помощью герметизирующего
пример кода ниже для Вас, чтобы изучить:

  using (SqlConnection conn = new SqlConnection(conString)) 
      { 
       conn.Open(); 

       SqlCommand cmd = new SqlCommand(userSql, conn); 
       cmd.Parameters.AddWithValue("@parameter", parameter); 


       conn.Close(); 

      } 

Конечно, вышесказанное не является полным кодом, но вы дадите идею.