How to Check if Full-Text Search is Installed in SQL Server 2005 Using T-SQL Queries


1 views

When working with SQL Server 2005, determining whether Full-Text Search (FTS) is installed becomes crucial for database administrators and developers who need to implement text search functionality. This guide provides comprehensive methods to verify FTS installation status using T-SQL queries when direct server access isn't available.

The most straightforward way to check FTS installation is by querying the server configuration:

SELECT SERVERPROPERTY('IsFullTextInstalled') AS IsFullTextInstalled;

This returns 1 if FTS is installed, 0 if not. For SQL Server 2005 specifically, you might also want to check:

EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'full text search';

Another approach is to check for the existence of full-text catalogs or components:

SELECT * FROM sys.fulltext_catalogs;

While this doesn't confirm installation directly, finding any catalogs certainly indicates FTS is in use. For a more component-focused check:

SELECT * FROM sys.dm_fts_active_catalogs;

You can verify if the Full-Text service is running through T-SQL:

DECLARE @ServiceName NVARCHAR(256)
EXEC master.dbo.xp_regread
    'HKEY_LOCAL_MACHINE',
    'SYSTEM\CurrentControlSet\Services\MSSQLSERVER',
    'ObjectName',
    @ServiceName OUTPUT;
SELECT @ServiceName AS SQLServerServiceAccount;

Then check if the MSFTESQL service is running under this account.

Attempting to use FTS-specific functions can reveal installation status:

BEGIN TRY
    SELECT CONTAINS(1,1);
    SELECT 1 AS FullTextSearchAvailable;
END TRY
BEGIN CATCH
    SELECT 0 AS FullTextSearchAvailable;
END CATCH

Remember that in SQL Server 2005, Full-Text Search was a separate installable component during setup. Even if the base SQL Server is installed, FTS might be missing. The most reliable method remains the SERVERPROPERTY check, combined with catalog verification for complete certainty.


When working with SQL Server 2005, you may need to verify whether Full-Text Search components are properly installed. Here are several reliable methods to check this programmatically:

SELECT SERVERPROPERTY('IsFullTextInstalled') AS IsFullTextInstalled;

This returns 1 if Full-Text Search is installed, 0 if not. This is the most straightforward approach.

-- Check if full-text functions are available
SELECT OBJECT_ID('sys.fulltext_catalogs') AS FullTextCatalogExist,
       OBJECT_ID('sys.fulltext_indexes') AS FullTextIndexExist;

If these system views exist, Full-Text Search is installed.

-- Check if SQL Full-text Filter Daemon service is installed
EXEC xp_servicecontrol 'QUERYSTATE', 'MSSQLFDLauncher';

Note: This requires appropriate permissions and may not work in all environments.

-- Check installed components via registry (requires appropriate permissions)
EXEC xp_regread 'HKEY_LOCAL_MACHINE',
     'SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\CurrentVersion',
     'FullTextInstalled';

Here's a comprehensive script to check Full-Text Search status:

DECLARE @IsFullTextInstalled BIT;

SELECT @IsFullTextInstalled = CONVERT(BIT, SERVERPROPERTY('IsFullTextInstalled'));

IF @IsFullTextInstalled = 1
    PRINT 'Full-Text Search is installed and available.';
ELSE
    PRINT 'Full-Text Search is NOT installed.';

If you want to confirm full-text functionality is operational:

-- Try creating a test catalog (will fail if not installed)
BEGIN TRY
    CREATE FULLTEXT CATALOG ft_test AS DEFAULT;
    PRINT 'Full-Text Search is fully functional.';
    DROP FULLTEXT CATALOG ft_test;
END TRY
BEGIN CATCH
    PRINT 'Full-Text Search installation issue: ' + ERROR_MESSAGE();
END CATCH

These methods work specifically for SQL Server 2005. For newer versions, some properties and system views might have changed.