У меня есть хранимая процедура, в которой я передаю параметр, который является Unicode и выглядит следующим образом:
מוכר שמן קוקוס בכחל מיני ואריציות
Теперь проблема заключается в том, что, когда я ввожу что-то в форму, чтобы найти это значение в мтаблица, такая как fllowing:
IF LEN(@SearchValue) > 0
BEGIN
SET @WhereQuery = @WhereQuery +
'(Type=' + CAST(@type AS NVARCHAR(10)) + ' and UserId=' + CAST(@userid AS NVARCHAR(10)) + ') and'
+ '(convert(nvarchar(max),SentWord) like ''%' + @SearchValue + '%'' or '
+ 'convert(nvarchar(max),Comment) like ''%' + @SearchValue + '%'')'
END
Где @SearchValue определяется как nvarchar (200) в SQL-сервере, и столбцы таблицы, которые содержат определенное значение:
SentWord и Comment, и оба определены в Юникодекак nvarchar (600).
Что я здесь не так делаю?Почему поиск по MSSQL не может проводиться по-еврейски?Кто-нибудь может мне помочь?
Как сказал @Jeroen, возможное исправление - добавить N после оператора LIKE, как показано ниже:
IF LEN(@SearchValue) > 0
BEGIN
SET @WhereQuery = @WhereQuery +
'(Type=' + CAST(@type AS NVARCHAR(10)) + ' and UserId=' + CAST(@userid AS NVARCHAR(10)) + ') and'
+ '(convert(nvarchar(max),SentWord) like N''%' + @SearchValue + '%'' or '
+ 'convert(nvarchar(max),Comment) like N''%' + @SearchValue + '%'')'
END
Но это все равно не работает ...