Передача параметров в предложение IN в SQL Server
Возможные дубликаты:
Параметризация предложения SQL IN?
SQL Server - в предложении с объявленной переменной
Привет,
Я столкнулся с проблемой передачи параметров в предложение IN. Я использую запрос ниже.
Запрос:
SELECT Topics.Topic_Id FROM Topics
Where Topic_Description IN (''+ @Topics +'')
Этот запрос работает, когда параметр имеет одно значение. Мой параметр может иметь несколько значений, разделенных запятыми: "один", "два", "три", "четыре". Но запрос не выполняется всякий раз, когда есть несколько параметров. Как преодолеть это? Пожалуйста, предложите.
Спасибо
Я должен использовать выше, как часть хранимой процедуры. Я должен взять результат запроса select в курсор, как показано ниже:
ОБЪЯВЛЯТЬ КУРСОР cur_TopicIDs ДЛЯ ВЫБРАТЬ Topics.Topic_Id ИЗ ТЕМ, где Topic_Description IN (''+ @Topics +'').... и т. Д.
В этом случае, как я могу использовать динамический SP, как предлагается в других ссылках
2 ответа
Воспользуйтесь любой из функций разделения здесь: http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=50648
Вы должны создать строку формата one','two','three
как значение в @Topics.
РЕДАКТИРОВАТЬ:- Тогда вам нужно использовать EXEC sp_executesql
выполнить ваше заявление SQL. Ответ правильно объяснен в ссылке, предоставленной спонсором на ваш вопрос.