SQL Server Books Online から:
Microsoft SQL Server 2005 でフルテキスト クエリを作成するには、CONTAINS および FREETEXT Transact-SQL 述語と、CONTAINSTABLE および FREETEXTTABLE 行セット値関数の使用方法を習得する必要があります。
つまり、上記の % と _ で記述されたすべてのクエリは、有効な全文クエリではありません。
CONTAINSTABLE 関数を呼び出すときのクエリの例を次に示します。
SELECT RANK , * FROM TableName , CONTAINSTABLE (TableName, *, ' "*WildCard" ') searchTable WHERE [キー] = TableName.pk ORDER BY searchTable.RANK DESC
ワイルドカード検索を使用していることを CONTAINSTABLE 関数に認識させるには、二重引用符で囲む必要があります。先頭または末尾にワイルドカード文字 * を使用できます。CONTAINSTABLE 関数の検索文字列を作成するときにできることは他にもたくさんあります。別の単語の近くにある単語を検索したり、屈折語を検索したり (ドライブ = ドライブ、ドライブ、ドライビング、ドリブン)、別の単語の同義語を検索したりできます (金属には、アルミニウムやスチールなどの同義語があります)。
テーブルを作成し、テーブルに全文インデックスを配置し、いくつかのテスト検索を実行しましたが、問題はなかったので、ワイルドカード検索は意図したとおりに機能します。
[アップデート]
質問を更新したようで、関数のいずれかを使用する必要があることがわかりました。
先頭にワイルドカードを使用して検索することもできますが、単語がワイルドカードに続く完全な単語でない場合は、末尾に別のワイルドカードを追加する必要があります。
Example: "*ildcar" will look for a single word as long as it ends with "ildcar".
Example: "*ildcar*" will look for a single word with "ildcar" in the middle, which means it will match "wildcard". [Just noticed that Markdown removed the wildcard characters from the beginning and ending of my quoted string here.]
【更新その2】
Dave Ward - 関数の 1 つでワイルドカードを使用しても、パフォーマンスが大幅に低下することはありません。「*」だけで検索文字列を作成した場合、すべての行が返されるわけではありません。私のテスト ケースでは、0 レコードが返されました。