选择带单引号的字符串问题

时间:2011-05-08 07:26:37

标签: sql-server-2008 stored-procedures escaping

我在构建此存储过程时遇到问题。

我需要使用光标从字典中选择单词并获取不同表格中的出现次数。问题是,有单引号的单词,我得到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,这再次无效。

有什么想法吗?

EDITED

这里有一些单词样本:

COPY'S
COWBOY'S
HAIR'S

我认为你明白了......

0 个答案:

没有答案