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。现在有一个每两分钟运行一次的作业,查看表是否已更新并让作业重建索引。完成后,将 UpdateIndex 重置为 0。

于 2012-12-16T13:43:40.860 回答
1

使用自动更改跟踪创建 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 回答