1

SQL Serverテーブルにフルテキストインデックスを作成する必要があります。顧客は、レコードが更新されるとすぐにインデックスを更新することを望んでいます。このトリガーをテーブルに追加するのが最善の策だと思いました...

CREATE TRIGGER TR_Section_InsUpd ON dbo.[Section] AFTER INSERT, UPDATE AS

ALTER FULLTEXT CATALOG TUG REBUILD WITH ACCENT_SENSITIVITY = OFF

GO

しかし、これがトリガーされると、ユーザートランザクションでカタログを再構築できないと言われます。誰かが私の目的を達成する方法を教えてもらえますか?数分ごとにスケジュールされたインデックスの再構築は、テーブルが頻繁に更新されないため、悪い考えのように思われますが、更新される場合は、変更をできるだけ早くフルテキストインデックスで利用できるようにする必要があります。

4

2 に答える 2

1

次に、更新テーブルを作成します。

CREATE TABLE IndexUpdates(TableName NVARCHAR(255)、UpdateIndex BIT)

トリガーで関連するエントリを1に更新します。次に、1〜2分ごとに実行されるジョブがあり、テーブルが更新されているかどうかを確認し、ジョブにインデックスを再構築させます。完了したら、UpdateIndexを0にリセットします。

于 2012-12-16T13:43:40.860 に答える
1

AUTO変更追跡を使用してFULLTEXTインデックスを作成します。 http://msdn.microsoft.com/en-us/library/ms187317.aspx

CREATE FULLTEXT INDEX on myTable (myColumn) WITH (CHANGE_TRACKING = AUTO)

うまく機能し、トリガーはありません。

于 2013-01-02T22:41:34.023 に答える