TSQL: как проверить включен ли столбец столбца?

Мне нужно изменить определение столбца, но я хотел бы проверить, включен ли первый текст в полный текст. Есть ли способ сделать такую ​​проверку в TSQL script?

Я использую SQL Server 2005.

Ответ 1

Вы можете попробовать использовать функцию 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'

Ответ 2

Вы можете попробовать что-то вроде этого:

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')

Ответ 3

Я думаю, что последний пример из ответа на этот вопрос мог бы помочь. Однако я его не тестировал.

Ответ 4

DECLARE @v INT;
SELECT @v = COLUMNPROPERTY(OBJECT_ID('schema.table'), 'column_name', 'IsFulltextIndexed')

IF (@v = 1)
  PRINT 'Fulltext column'
ELSE
  PRINT 'No Fulltext column'