Troubleshooting Guide: Error 9970 – Full-Text Key Offline
Why This Error Happens
Error 9970 occurs when the full-text key column (the unique index column used by the Full-Text Engine) for a table or indexed view is marked offline, typically because the underlying filegroup containing the full-text key index is unavailable or has been taken offline. This can also happen when the database is in a suspect or recovery-pending state, preventing SQL Server 2025 from validating the uniqueness of the key during full-text crawl or query operations. Corrupted full-text catalog metadata or an incomplete database restore/attach operation can also trigger this condition.
Step-by-Step Resolution Guide
Step 1: Verify the Filegroup and Database State
- Open SQL Server Management Studio (SSMS) and connect to the SQL Server 2025 instance.
- Run the following query to check filegroup status:
SELECT name, state_desc FROM sys.filegroups;
- Confirm the database itself is online by running:
SELECT name, state_desc FROM sys.databases WHERE name = 'YourDatabaseName';
- If the state shows “OFFLINE” or “RECOVERY_PENDING,” proceed to bring the filegroup/database back online.
Step 2: Bring the Offline Filegroup or Database Online
- If a specific filegroup is offline, run:
ALTER DATABASE YourDatabaseName MODIFY FILEGROUP [FilegroupName] ONLINE;
- If the entire database is offline due to a file issue, locate the physical data file path (commonly under
C:\Program Files\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQL\DATA\on Windows Server 2025). - Ensure the SQL Server service account has Read/Write NTFS permissions on this folder via File Properties > Security > Edit.
- Attempt to bring the database online:
ALTER DATABASE YourDatabaseName SET ONLINE;
Step 3: Rebuild the Full-Text Index
- Once the filegroup is online, the full-text key index itself may need repair. Drop and recreate the full-text index on the affected table:
DROP FULLTEXT INDEX ON YourTableName;
GO
CREATE FULLTEXT INDEX ON YourTableName(ColumnName)
KEY INDEX PK_YourTableName
ON YourFullTextCatalogName;
GO
- Start a full repopulation to ensure the crawl completes cleanly:
ALTER FULLTEXT INDEX ON YourTableName START FULL POPULATION;
Step 4: Restart the Full-Text Daemon Service
- Open Services.msc on Windows Server 2025 / Windows 11.
- Locate SQL Full-text Filter Daemon Launcher (MSSQLSERVER).
- Right-click and select Restart to clear any stale locks on the full-text key index.
Alternative or Verification Steps
- Verify the fix by querying
sys.fulltext_indexesand checking that theis_enabledcolumn returns1, and confirm the crawl status viaSELECT FULLTEXTCATALOGPROPERTY('CatalogName', 'PopulateStatus');(a result of0indicates idle/success). - If the filegroup remains corrupted and cannot be brought online, restore the database from the last known good backup using
RESTORE DATABASE YourDatabaseName FROM DISK = 'BackupPath' WITH RECOVERY;to reset the full-text key indexes entirely.