У меня проблема со сборкой этой хранимой процедуры.
Мне нужно выбрать слова из словаря с помощью курсора и получить количество появлений в другой таблице.Проблема в том, что есть слова с одинарными кавычками, которые я получаю NULL
для их количества, и я больше боюсь, что значения, которые я получаю для других слов, неверны.
BEGIN
DECLARE @word VARCHAR(30) -- database name
DECLARE @count INT -- path for backup files
DECLARE wordDictionay_cursor CURSOR FOR
SELECT [Word], count([QuestionId])
FROM [KnowItAll].[dbo].[InvertedIndex]
GROUP BY Word
OPEN wordDictionay_cursor
FETCH NEXT FROM wordDictionay_cursor INTO @word , @count
WHILE @@FETCH_STATUS <> -1
BEGIN
UPDATE [KnowItAll].[dbo].[WordDictionary]
SET [DocumentFrequency] = @count
WHERE Word = @word
FETCH NEXT FROM wordDictionay_cursor INTO @word, @count
END
CLOSE wordDictionay_cursor
DEALLOCATE wordDictionay_cursor
END
Я пытался:
REPLACE(@word,'''','''''')
, который не работал, и я также попытался установить QUOTED_IDENTIFIER
на OFF
, который снова не работал.
Есть идеи?
РЕДАКТИРОВАНИЕ
Вот несколько примеров слов:
COPY'S
COWBOY'S
HAIR'S
Я думаю, вы поняли ...