How to find Full-text indexing on database in SQL Server 2008?

匆匆过客 提交于 2019-12-18 05:36:12

问题


Hi I am looking for a query that is able to find Full text indexing on all tables and columns within a database using SQL Server 2008. Any information or help that can be provided for this is welcomed


回答1:


Here's how you get them

SELECT 
    t.name AS TableName, 
    c.name AS FTCatalogName ,
    i.name AS UniqueIdxName,
    cl.name AS ColumnName
FROM 
    sys.tables t 
INNER JOIN 
    sys.fulltext_indexes fi 
ON 
    t.[object_id] = fi.[object_id] 
INNER JOIN 
    sys.fulltext_index_columns ic
ON 
    ic.[object_id] = t.[object_id]
INNER JOIN
    sys.columns cl
ON 
        ic.column_id = cl.column_id
    AND ic.[object_id] = cl.[object_id]
INNER JOIN 
    sys.fulltext_catalogs c 
ON 
    fi.fulltext_catalog_id = c.fulltext_catalog_id
INNER JOIN 
    sys.indexes i
ON 
        fi.unique_index_id = i.index_id
    AND fi.[object_id] = i.[object_id];



回答2:


select distinct
    object_name(fic.[object_id])as table_name,
    [name]
from
    sys.fulltext_index_columns fic
    inner join sys.columns c
        on c.[object_id] = fic.[object_id]
        and c.[column_id] = fic.[column_id]



回答3:


I know this is an old thread, but I just now needed this answer, and found Sadra Abedinzadeh's answer above useful, but a slightly lacking for my needs, so I thought I'd post another answer here, which is a modification of Sadra's answer, to include Indexed Views with FullText Indexes, and some extra column information:

use MyDatabaseName -- Modify here, of course

SELECT 
    tblOrVw.[name] AS TableOrViewName,
    tblOrVw.[type_desc] AS TypeDesc,
    tblOrVw.[stoplist_id] AS StopListID,
    c.name AS FTCatalogName ,
    cl.name AS ColumnName,
    i.name AS UniqueIdxName
FROM
(
    SELECT TOP (1000) 
        idxs.[object_id],
        idxs.[stoplist_id],
        tbls.[name],
        tbls.[type_desc]
      FROM sys.fulltext_indexes idxs
      INNER JOIN sys.tables tbls
      on tbls.[object_id] = idxs.[object_id]
    union all 
    SELECT TOP (1000) 
        idxs.[object_id],
        idxs.[stoplist_id],
        tbls.[name],
        tbls.[type_desc]
      FROM sys.fulltext_indexes idxs
      INNER JOIN sys.views tbls -- 'tbls' reused here to mean 'views'
      on tbls.[object_id] = idxs.[object_id]
) tblOrVw 
INNER JOIN sys.fulltext_indexes fi 
on tblOrVw.[object_id] = fi.[object_id] 
INNER JOIN 
    sys.fulltext_index_columns ic
ON 
    ic.[object_id] = tblOrVw.[object_id]
INNER JOIN
    sys.columns cl
ON 
        ic.column_id = cl.column_id
    AND ic.[object_id] = cl.[object_id]
INNER JOIN 
    sys.fulltext_catalogs c 
ON 
    fi.fulltext_catalog_id = c.fulltext_catalog_id
INNER JOIN 
    sys.indexes i
ON 
        fi.unique_index_id = i.index_id
    AND fi.[object_id] = i.[object_id];


来源:https://stackoverflow.com/questions/16280918/how-to-find-full-text-indexing-on-database-in-sql-server-2008

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!