Я хочу, чтобы создать хранимую процедуру SQL Server, как это:SQL тип данных для использования в строку фразу
CREATE PROCEDURE dbo.uspGetCharacterID
(@characterName vchar(1000))
as
SELECT c.charatcer_full
FROM CHARACTER c (nolock)
WHERE character_full IN (@characterName)
ORDER BY C.characterID
От кода, @charactername
Я передаю ->'Batman in latest movies', 'Superman in latest movies'
Но в коде его возвращения к нулю строк.
ПРИМЕЧАНИЕ. Если я запускаю тот же запрос выбора в SQL с этой строкой, он успешно возвращает две строки.
ВОПРОС: какой тип данных следует использовать, чтобы требования удовлетворялись?
'Varchar'
и 'Text'
не работал.
Пожалуйста, руководство
Благодарности
Будет ли эта строка представляет данные в одной записи * Бэтмен в последних фильмах, Супермен в последних фильмах * –
tabele «Характер», «Бэтмен в последних фильмах» есть 1 строка и «Супермен в последних фильмах» имеет 1 строку. Таким образом, выполнение вышеуказанного запроса возвращает две строки. – Kings
Речь идет не о типе данных - дело в том, что вы не можете сделать это так, как вы это делаете. Вы не можете передать список строк в качестве «varchar», а затем использовать те, которые содержатся в конструкте '.. IN (....)'. Не работает так. См. [Этот другой вопрос SO] (http://stackoverflow.com/questions/2866577/passing-delimited-string-to-stored-procedure-to-search-database), который занимается этой проблемой, и см. Ответ, предоставленный 'KM.' - вот как это сделать. –