Sql 在触发器中重建全文索引
我要求SQL Server表上有一个全文索引,客户希望在记录更新后立即更新索引。我想我们最好把这个触发器放在桌子上Sql 在触发器中重建全文索引,sql,sql-server,full-text-search,Sql,Sql Server,Full Text Search,我要求SQL Server表上有一个全文索引,客户希望在记录更新后立即更新索引。我想我们最好把这个触发器放在桌子上 CREATE TRIGGER TR_Section_InsUpd ON dbo.[Section] AFTER INSERT, UPDATE AS ALTER FULLTEXT CATALOG TUG REBUILD WITH ACCENT_SENSITIVITY = OFF GO 但当触发时,我被告知无法在用户事务中重建目录。有人能告诉我如何实现我的目标吗?每隔几分钟重建一
CREATE TRIGGER TR_Section_InsUpd ON dbo.[Section] AFTER INSERT, UPDATE AS
ALTER FULLTEXT CATALOG TUG REBUILD WITH ACCENT_SENSITIVITY = OFF
GO
但当触发时,我被告知无法在用户事务中重建目录。有人能告诉我如何实现我的目标吗?每隔几分钟重建一次预定的索引似乎不是一个好主意,因为表不会经常更新,但更新后,他们希望全文索引中的更改尽快可用。创建更新表,例如: 创建表索引更新(表名NVARCHAR(255),更新索引位)
让您的触发器将相关条目更新为1。现在有一个每隔一两分钟运行一次的作业,查看表是否已更新,并让作业重新生成索引。完成后,将UpdateIndex重置为0。使用自动更改跟踪创建全文索引。
效果很好,没有触发器。不要这样做!说真的-你不应该在触发器中有任何耗时的活动。。。。一个好的触发器只会记录一些东西——但它绝对不应该做任何耗时的工作!完全理解你的观点,但在这种情况下,它肯定不是密集型的,因为它最多包含几百条记录,很少会改变,目前重建索引需要花费时间
CREATE FULLTEXT INDEX on myTable (myColumn) WITH (CHANGE_TRACKING = AUTO)