SQL-запрос к связанному серверу индекса не работает с подстановочными знаками

StackOverflow https://stackoverflow.com/questions/1227072

  •  22-07-2019
  •  | 
  •  

Вопрос

это утверждение, которое я использую в sproc (где поисковая фраза 'reiseportal *' является параметром), не работает с подстановочным знаком, как я узнал:

DECLARE @strSQL NVARCHAR(MAX)

SELECT @strSQL= 'SELECT FileName, path, size, vpath from "GRIP-SERVER"."Web2"..SCOPE() where contains
('SELECT @strSQL=@strSQL  + CHAR(39) + CHAR(39)+ 'reiseportal*' + CHAR(39) + CHAR(39)+')'

SELECT @strSQL='SELECT DISTINCT DOC.ID_Kandidat, IDXS.* FROM
OPENQUERY([GRIP-SERVER],'+ CHAR(39) + @strSQL + CHAR(39) +') AS IDXS INNER JOIN
tblK_Dokumente AS DOC
ON DOC.Link = IDXS.[FileName]
ORDER BY ID_Kandidat'

EXEC sp_executesql @statement = @strSQL

это содержимое переменной @strSQL:

после первого выбора:

select FileName, path, size, vpath from "GRIP-SERVER"."Web2"..SCOPE() where
contains(''reiseportal*'')

2-й выбор:

SELECT DISTINCT DOC.ID_Kandidat, IDXS.* FROM
OPENQUERY([GRIP-SERVER],'select FileName, path, size, vpath from "GRIP-SERVER"."Web2"..SCOPE() where
contains(''reiseportal*'')') AS IDXS INNER JOIN
tblK_Dokumente AS DOC
ON DOC.Link = IDXS.[FileName]
ORDER BY ID_Kandidat'

GRIP-SERVER - это связанный индексный сервер (= Microsoft Server 2003 - наш файловый сервер).

Я не понимаю ... он возвращает результаты с помощью " reiseportals " но не "reiseportal *" или "reiseportal%". У вас есть намеки на меня?

Ваша помощь очень ценится, большое спасибо!

Это было полезно?

Решение

Я нашел ответ сам.

Проблема не в шаблоне, а в строковых маркерах. Сервер индекса использует не апострофы, а кавычки. Таким образом, правильный SQL должен выглядеть так:

SELECT DISTINCT DOC.ID_Kandidat, IDXS.* FROM
OPENQUERY([GRIP-SERVER],'select FileName, path, size, vpath from "GRIP-SERVER"."Web2"..SCOPE() where
contains(''"reiseportal*"'')') AS IDXS INNER JOIN
tblK_Dokumente AS DOC
ON DOC.Link = IDXS.[FileName]
ORDER BY ID_Kandidat
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top