kitproj Ответов: 1

Как передать несколько значений с одинарной кавычкой в MSSQL store proc


Привет всем, я знаю, что это глупый вопрос, но дело в том, что я застрял с ним в течение последнего 1 часа, пытаясь понять, как это сделать.
хорошо, вот моя ситуация,

например, я пытаюсь передать параметр в store proc с помощью оператора select, как показано ниже:

DECLARE @strA VARCHAR(20) = '''1'',''2'''
 
select * from tableA
where ColA in (   @strA )


он выполнялся без ошибок, без результата...что неправильно, потому что должен быть возврат результата, я проверил запрос..

select * from tableA
where ColA in ('1','2')


пожалуйста, сообщите, что не так с моим магазином proc. заранее спасибо.

Maciej Los

Возвращает ли второй запрос какие-либо данные?

kitproj

да, это так. вот почему я думаю, что это единственная цитата, которая приводит к тому, что результат не отображается.

1 Ответов

Рейтинг:
11

CHill60

Вы должны использовать динамический sql, если собираетесь передавать данные таким образом
напр.

DECLARE @strA VARCHAR(20) = '''1'',''2'''
 
DECLARE @sql NVARCHAR(MAX) = 'select * from tableA where ColA in (' + @strA + ')'
EXEC sp_sqlexec @sql


Maciej Los

5ед!

kitproj

спасибо Chill60.