Ma solution finale est basée sur le fait que « C# » est traité différemment pour « C# ». Lorsque la lettre précédant le caractère '#' est en majuscule, le '#' n'est PAS traité comme un caractère de rupture de mot. Par conséquent j'ai dû écrire un script mettre à jour la table que l'index de texte intégral était sur pour changer tout 'C#' en 'C#' (je exécute alors ce script comme travail de sql pour m'assurer qu'il n'y a aucun cas d'amoureux) lors de la recherche que 'C#' est changé en 'C#' que j'ai fait dans mon code.
Alternativement si vous avez SQL2008 et que vous pouvez changer la langue de texte intégral pour l'index fts, vous pouvez le configurer pour utiliser la langue 'Neutre' comme séparateur de mots pour les colonnes indexées. Le séparateur de mots 'Neutre' ne casse que du texte blanc. Ensuite, changez votre commande fts pour spécifier le comme la langue utilisée par exemple. Sélectionnez * from FREETEXTTABLE (tblList, colLanguage, 'C#', LANGUAGE 0) vous pouvez rechercher 'C#' ou 'C#' sans autre modification * requise, à part la reconstruction de vos index.
* vous devrez peut-être changer la «langue de texte intégral par défaut» pour votre instance de base de données, je devais.
Je dois examiner cette réponse pour voir si je peux le faire avant de la marquer comme la réponse –
L'utilisation de ce qui suit vous permettra de trouver le séparateur de mots pour votre langue sans vous permettre de modifier la liste des caractères . Il semble que vous devez écrire votre propre disjoncteur ou fossé FTS si vous voulez faire cela. SELECT * FROM sys.fulltext_languages; EXEC sp_help_fulltext_system_components 'wordbreaker'; –