Escapando um e comercial na consulta de pesquisa de texto completo do SQL Server usando CONTAINSTABLE

Eu tenho um caso muito peculiar. Minha página do ASP.NET chama um procedimento armazenado nosso que executa uma consulta de pesquisa de texto completo em nosso banco de dados. Algumas das seqüências de caracteres comumente pesquisadas incluem um e comercial, porque algumas marcas de nossos produtos (marcas conhecidas também) têm um& em nome deles.

Acontece que, em um certo caso, não obtive resultadosa menos que eu escape do e comercial (\&) e, em outro caso, não obtive resultadossomente se eu escapar do e comercial.

Não sei se isso é relevante, mas (sem dar os nomes das marcas), termina-se em&b e o outro em&c.

É possível que essas strings (&b ou&c) têm algum significado especial próprio? E que, escapando deles, estou realmente passando uma string especial para o T-SQL?

EDITAR

Informações adicionais: após testes adicionais, eu provei que o erro está no próprio procedimento armazenado. Chamando com& ou\& produz resultados diferentes.

Vou tentar postar partes selecionadas dos procedimentos armazenados. Não vou publicar tudo, porque a maior parte não é realmente relevante.

ovParamBuca parâmetro é o que causa os problemas. Valores podem ser'word&letter' ouword\&letter.

SET @ricercaA = '''FORMSOF(INFLECTIONAL,"' +
    REPLACE(LTRIM(RTRIM(@vParamBuca)),' ', '") AND FORMSOF(INFLECTIONAL,"') + '")'''

A variável@ricercaA é então usado para criar a string de consulta:

[...]
FROM Products AS FT_TBL
LEFT OUTER JOIN CONTAINSTABLE (Products, Sign1, '+ @ricercaA + ') AS ColSign1_0 ON FT_TBL.ID = ColSign1_0.[KEY]
LEFT OUTER JOIN CONTAINSTABLE (Products, ManufacturerAdditionalText, '+ @ricercaA + ') AS ColManufacturerAdditionalText_0 ON FT_TBL.ID = ColManufacturerAdditionalText_0.[KEY]
LEFT OUTER JOIN CONTAINSTABLE (Products, ManufacturerForSearch, '+ @ricercaA + ') AS ColManufacturer_0 ON FT_TBL.ID = ColManufacturer_0.[KEY]
LEFT OUTER JOIN CONTAINSTABLE (Products, TuttaLaRiga, '+ @ricercaA + ') AS ColTuttaLaRiga_0 ON FT_TBL.ID = ColTuttaLaRiga_0.[KEY]
[...]

EDIT 2

Muito obrigado a @srutzky por me apontar na direção certa! Enquanto isso, também encontrei uma inconsistência de dados em que uma das marcas com o& em seu nome foi modificado para não ter o&, e o outro não foi modificado (em suma, meu problema atual é causado por isso: uma correção parcial que foi feita por alguém no passado).

Enfim, de volta aos trilhos. Agora eu entendo que o& personagem noCONTAINSTABLE A função é tratada como um AND lógico (não bit a bit).

Eu ainda preciso de uma solução para isso.Esta resposta dá uma solução que não funciona para mim (as condições não são as mesmas que as minhas). Como eu poderia realizar umCONTAINSTABLE procurar uma string com um e comercial? De preferência sem precisar transformar o e comercial em outro caractere seguro?

questionAnswers(1)

yourAnswerToTheQuestion