クライアントの1人を含むプロジェクトの一部は、UIに対応するヘブライ語1037(データベースは英語とヘブライ語の両方を持っています) AngularとC#で書かれたシステム。データベース自体はLatin1_General_100_CI_ASに照合されます。 ストアドプロシージャは、単一ワード入力を取得すると想定される検索用のパラメータを取得し、SP内のコードは、異なる全文検索クエリに対してそのパラメータを使用します。関連するデータが存在するにもかかわらず、全文検索ストアドプロシージャに結果が得られません
最初に奇妙なことが起こるのは、引用符を付けてもしなくても文字列を渡すと、すべて正常に動作します。私はこれが既知のバグであり、マイクロソフトはすぐに修正するつもりはないと読んでいます。
本当の問題は、渡された実際の文字列にあります。
ヘブライ文字列または数値を渡すと、すべて正常に動作し、SQL Serverは関連するデータを取得します(UIとSSMSを通じて)。
英語で文字列をSSMSに渡すと、SQL Serverは関連するデータで応答しますが、UIシステムがパラメータを渡すとデータが返されません。私は非常に問題のいくつかの助けに感謝します
ALTER PROCEDURE dbo.SearchByFreeText
@StringToSearch NVARCHAR(500) = NULL
AS
SELECT *
FROM SampleTable
WHERE CONTAINS(SampleColumn, @StringToSearch)
OR
FREETEXT(SampleColumn, @StringToSearch)
:
次のSQLコードは非常に基本的である使用してコードイムです。
ありがとうございます!