Мне нужно изменить определение столбца, но я хотел бы проверить, включен ли первый текст в полный текст. Есть ли способ сделать такую проверку в TSQL-скрипте?TSQL: Как проверить включен ли полнотекстовый столбец?
Я использую SQL Server 2005.
Мне нужно изменить определение столбца, но я хотел бы проверить, включен ли первый текст в полный текст. Есть ли способ сделать такую проверку в TSQL-скрипте?TSQL: Как проверить включен ли полнотекстовый столбец?
Я использую SQL Server 2005.
Вы можете попробовать использовать функцию COLUMNPROPERTY().
DECLARE @value INT;
SELECT @value = COLUMNPROPERTY(OBJECT_ID('schema.table'), 'column_name', 'IsFulltextIndexed')
IF (@value = 1)
PRINT 'Fulltext column'
ELSE
PRINT 'No Fulltext column'
Я думаю, что последний пример из ответа на this question может помочь. Однако я его не тестировал.
Если я правильно его читаю, этот ответ касается ** таблицы ** вместо ** колонки **. –
По крайней мере, это часть ответа; если в таблице нет «TableHasActiveFulltextIndex», для столбца невозможно иметь один. –
@ KeesC.Bakker: Хм, вы правы ... Возможно, вы можете использовать некоторые части общих запросов, перечисленных здесь: http://stackoverflow.com/questions/765867/list-of-all-index- index-columns-in-sql-server-db –
Вы можете попробовать что-то вроде этого:
SELECT *
FROM sys.columns c
INNER JOIN sys.fulltext_index_columns fic ON c.object_id = fic.object_id
AND c.column_id = fic.column_id
Если вам необходимо ограничить его в данной таблице, используйте:
SELECT *
FROM sys.columns c
INNER JOIN sys.fulltext_index_columns fic ON c.object_id = fic.object_id
AND c.column_id = fic.column_id
WHERE c.object_id = OBJECT_ID('YourTableNameHere')
Сладкий, что работает. Но, похоже, Christian.K имеет меньший ответ. –
Я предпочитаю этот ответ, так как он показывает все столбцы с полным текстом с идентификатором столбца. Это позволяет вам запускать что-то вроде 'SELECT display_term, column_id, document_count FROM sys.dm_fts_index_keywords (DB_ID ('DB_NAME'), OBJECT_ID ('TABLE_NAME')) order by document_count desc', чтобы показать все термины и где они находятся индексируются. – webnoob
Итак, 0 действительно хорош в этом случае? –
Эти значения возможны в этом случае? '0' и' NULL'? –
Извините, я пару раз отредактировал ответ, поэтому я не знаю, на какую ревизию вы ссылаетесь. Но согласно [MSDN] (http://msdn.microsoft.com/en-us/library/ms174968%28v=sql.90%29.aspx): 0 - нет полнотекстовой индексации, 1 - полнотекстовое индексирование, ошибка NULL , –