sp_fulltext_column (Transact-SQL)

Si applica a:SQL ServerAzure Synapse Analytics

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

Importante

Questa funzionalità verrà rimossa nelle versioni future di SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata. In alternativa, usare ALTER FULLTEXT INDEX .

Convenzioni di sintassi Transact-SQL

Sintassi

sp_fulltext_column
    [ @tabname = ] N'tabname'
    , [ @colname = ] N'colname'
    , [ @action = ] 'action'
    [ , [ @language = ] language ]
    [ , [ @type_colname = ] N'type_colname' ]
[ ; ]

Argomenti

[ @tabname = ] N'tabname'

Nome di tabella in una o due parti. La tabella deve esistere nel database corrente La tabella deve disporre di un indice full-text. @tabname è nvarchar(517), senza impostazione predefinita.

[ @colname = ] N'colname'

Nome di una colonna in @tabname. La colonna deve essere un carattere, varbinary(max)o image e non può essere una colonna calcolata. @colname è sysname, senza impostazione predefinita.

SQL Server può creare indici full-text di dati di testo archiviati in colonne con tipo di dati varbinary(max) o image . Le immagini e le immagini non vengono indicizzate.

[ @action = ] 'action'

Azione da eseguire. @action è varchar(20), senza impostazione predefinita e può essere uno dei valori seguenti.

Valore Descrizione
add Aggiunge @colname di @tabname all'indice full-text inattivo della tabella. Questa azione abilita la colonna per l'indicizzazione full-text.
Goccia Rimuove @colname di @tabname dall'indice full-text inattivo della tabella.

[ @language = ] lingua

Lingua dei dati archiviati nella colonna. @language è int, con il valore predefinito NULL. Per un elenco dei linguaggi inclusi in SQL Server, vedere sys.fulltext_languages (Transact-SQL).

Nota

Usare Neutral quando una colonna contiene dati in più lingue o in una lingua non supportata. Il valore predefinito è specificato dall'opzione di configurazione del server lingua full-text predefinita.

[ @type_colname = ] N'type_colname'

Nome di una colonna in @tabname che contiene il tipo di documento di @colname. Questa colonna deve essere char, nchar, varchar o nvarchar. Viene usato solo quando il tipo di dati di @colname è di tipo varbinary(max) o image. @type_colname è sysname, con un valore predefinito .NULL

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Set di risultati

Nessuno.

Osservazioni:

Se l'indice full-text è attivo, l'eventuale processo di popolamento in corso viene arrestato. Inoltre, se una tabella con un indice full-text attivo è abilitata, SQL Server garantisce che l'indice sia corrente. Ad esempio, SQL Server arresta qualsiasi popolamento corrente 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 membro del ruolo predefinito del database db_owner o del proprietario della tabella.

Esempi

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

USE AdventureWorks2022;
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.