Condividi tramite


sp_fulltext_column (Transact-SQL)

Specifica se una determinata colonna di una tabella viene inclusa o meno nell'indicizzazione full-text.

Nota importanteImportante

Questa caratteristica verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server. Evitare di utilizzare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata. Utilizzare in alternativa ALTER FULLTEXT INDEX.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

sp_fulltext_column [ @tabname= ] 'qualified_table_name' , 
     [ @colname= ] 'column_name' , 
     [ @action= ] 'action' 
     [ , [ @language= ] 'language_term' ] 
     [ , [ @type_colname= ] 'type_column_name' ]

Argomenti

  • [ @tabname= ] 'qualified_table_name'
    Nome della tabella composto da una o due parti. La tabella deve esistere nel database corrente e includere un indice full-text. qualified_table_name è di tipo nvarchar(517) e non prevede alcun valore predefinito.

  • [ @colname= ] 'column_name'
    Nome di colonna in qualified_table_name. Deve essere una colonna di tipo carattere, varbinary(max) o image e non deve essere calcolata. column_name è di tipo sysname e non prevede alcun valore predefinito.

    [!NOTA]

    SQL Server supporta la creazione di indici full-text dei dati di testo archiviati nelle colonne di tipo varbinary(max) o image. Le immagini non vengono indicizzate.

  • [ @action= ] 'action'
    Azione da eseguire. action è di tipo varchar(20) e non prevede alcun valore predefinito. I possibili valori sono i seguenti.

    Valore

    Descrizione

    add

    Aggiunge column_name di qualified_table_name all'indice full-text inattivo della tabella. Questa azione abilita la colonna per l'indicizzazione full-text.

    drop

    Rimuove column_name di qualified_table_name dall'indice full-text inattivo della tabella.

  • [ @language= ] 'language_term'
    Lingua dei dati archiviati nella colonna. Per un elenco delle lingue incluse in SQL Server, vedere sys.fulltext_languages (Transact-SQL).

    [!NOTA]

    Se una colonna include dati in lingue diverse o in una lingua non supportata, utilizzare la lingua neutra. Il valore predefinito è specificato nell'opzione di configurazione "default full-text language".

  • [ @type_colname = ] 'type_column_name'
    Nome della colonna in qualified_table_name contenente il tipo di documento di column_name. Tale colonna deve essere di tipo char, nchar, varchar o nvarchar. Viene utilizzato solo quando column_name è di tipo varbinary(max) o image. type_column_name è di tipo sysname e non prevede alcun valore predefinito.

Valori restituiti

0 (esito positivo) o 1 (esito negativo)

Set di risultati

Nessuno

Osservazioni

Se l'indice full-text è attivo, l'eventuale processo di popolamento in corso viene interrotto. Inoltre, se in una tabella con indice full-text attivo è abilitato il rilevamento delle modifiche, SQL Server assicura che l'indice sia aggiornato. Ad esempio, SQL Server interrompe l'eventuale processo di popolamento in corso nella tabella, elimina l'indice esistente e avvia un nuovo popolamento.

Se il rilevamento delle modifiche è attivato e devono essere aggiunte o eliminate colonne dall'indice full-text conservando tuttavia l'indice, è necessario disattivare la tabella, quindi aggiungere ed eliminare le colonne appropriate. In seguito a queste azioni l'indice viene bloccato. È quindi possibile attivare la tabella in un momento successivo, quando è opportuno avviare un processo di popolamento.

Autorizzazioni

L'utente deve essere membro del ruolo predefinito del database db_ddladmin o db_owner, oppure il proprietario della tabella.

Esempi

Nell'esempio seguente la colonna DocumentSummary della tabella Document viene aggiunta all'indice full-text della tabella.

USE AdventureWorks;
GO
EXEC sp_fulltext_column 'Production.Document', DocumentSummary, 'add';
GO

Nell'esempio seguente si presuppone che sia stato creato un indice full-text nella tabella spanishTbl. Per aggiungere la colonna spanishCol all'indice full-text, eseguire la stored procedure seguente:

EXEC sp_fulltext_column 'spanishTbl', 'spanishCol', 'add', 0xC0A;
GO

Quando si esegue la seguente query:

SELECT * 
FROM spanishTbl 
WHERE CONTAINS(spanishCol, 'formsof(inflectional, trabajar)')

Il set di risultati deve includere le righe contenenti forme diverse del verbo spagnolo trabajar (lavorare), ad esempio trabajo, trabajamos e trabajan.

[!NOTA]

È necessario che in tutte le colonne elencate in una singola clausola di funzione per query full-text sia applicata la stessa lingua.