5

最後の検索条件パラメーターに列名を渡す次のような構文はどちらもサポートしていないCONTAINSか、サポートしていないようです。CONTAINSTABLE

SELECT *
FROM dbo.Articles AS a
WHERE EXISTS
(
   SELECT *
   FROM dbo.Terms AS t
   INNER JOIN CONTAINSTABLE(dbo.Articles, (ArticleBody), t.FulltextTerm)
      AS ct ON ct.[Key] = a.ArticleId
)

上記のクエリは、「't' 付近の構文が正しくありません」というエラー メッセージを返します。

Termsテーブルには列を持つ複数の行が含まれており、FulltextTermそれらのFulltextTerm値のいずれかが ArticleBody にある場合、特定の記事が選択されるように一致する必要があります。これが私が達成しようとしていることです。

CONTAINSCONTAINSTABLE検索条件パラメーターの文字列リテラルまたは変数のみをサポートしているように見えますが、これは非常に制限的です。Termsそれが唯一のオプションである場合、カーソルまたはループを使用してテーブルを反復処理する必要がある場合、さらに多くのコードが必要になり、確かにはるかに遅くなります。

ここにトリックがありませんか、または誰かが提案できる回避策があります-できればセットベースのソリューション、つまりループを回避します。

4

1 に答える 1