Condividi tramite


sp_fulltext_catalog (Transact-SQL)

Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure

Consente di creare ed eliminare un catalogo full-text e di avviare e arrestare l'azione di indicizzazione per un catalogo. È possibile creare più cataloghi full-text per ogni database.

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. Usare invece CREATE FULLTEXT CATALOG, ALTER FULLTEXT CATALOG e DROP FULLTEXT CATALOG .

Convenzioni relative alla sintassi Transact-SQL

Sintassi

sp_fulltext_catalog
    [ @ftcat = ] N'ftcat'
    , [ @action = ] 'action'
    [ , [ @path = ] N'path' ]
[ ; ]

Argomenti

[ @ftcat = ] N'ftcat'

Nome del catalogo full-text. I nomi dei cataloghi devono essere univoci per ogni database. @ftcat è sysname, senza impostazione predefinita.

[ @action = ] 'action'

Azione da eseguire. @action è varchar(20)e può essere uno di questi valori.

Nota

I cataloghi full-text possono essere creati, eliminati e modificati in base alle necessità. Evitare tuttavia di modificare contemporaneamente più cataloghi a livello di schema. Queste azioni possono essere eseguite usando la sp_fulltext_table stored procedure, che è il modo consigliato.

valore Descrizione
create Crea un nuovo catalogo full-text vuoto nel file system e aggiunge una riga associata in sysfulltextcatalogs con il @ftcat e @path, se presente, valori. @ftcat deve essere univoco all'interno del database.
drop Elimina @ftcat rimuovendolo dal file system ed eliminando la riga associata in sysfulltextcatalogs. Questa azione non viene completata se nel catalogo sono inclusi indici per una o più tabelle. sp_fulltext_table '<table_name>', 'drop' deve essere eseguito per eliminare le tabelle dal catalogo.

Se il catalogo non esiste, viene visualizzato un errore.
start_incremental Avvia un popolamento incrementale per @ftcat. Se il catalogo non esiste, viene visualizzato un errore. Se è già attivo il popolamento di un indice full-text, viene visualizzato un avviso e il popolamento non viene eseguito. Con il popolamento incrementale vengono recuperate solo le righe modificate per l'indicizzazione full-text, purché nella tabella sia presente una colonna timestamp indicizzata.
start_full Avvia un popolamento completo per @ftcat. Per l'indicizzazione full-text viene recuperata ogni riga di ogni tabella associata al catalogo, anche se è già stata indicizzata.
stop Arresta un popolamento dell'indice per @ftcat. Se il catalogo non esiste, viene visualizzato un errore. Se il popolamento è già stato arrestato, non viene visualizzato alcun avviso.
rebuild Ricompila @ftcat. Quando viene ricompilato un catalogo, il catalogo esistente viene eliminato e al suo posto viene creato un nuovo catalogo. Tutte le tabelle con riferimenti di indicizzazione full-text vengono associate al nuovo catalogo. La ricompilazione reimposta i metadati full-text nelle tabelle di sistema del database.

Se il rilevamento delle modifiche è DISATTIVATo, la ricompilazione non comporta il ripopolamento del catalogo full-text appena creato. In questo caso, per ripopolare, eseguire sp_fulltext_catalog con l'azione start_full o start_incremental .

[ @path = ] N'path'

Directory radice (non percorso fisico completo) per un'azione di creazione . @path è nvarchar(100), con un valore predefinito NULL, che indica l'uso del percorso predefinito specificato durante l'installazione.

Si tratta della FTData sottodirectory nella MSSQL directory, C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\FTDataad esempio . La directory radice specificata deve trovarsi in un'unità nello stesso computer, costituita da più di una lettera di unità e non può essere un percorso relativo. Le unità di rete, le unità rimovibili, i dischi floppy e i percorsi UNC non sono supportati. I cataloghi full-text devono essere creati in un disco rigido locale associato a un'istanza di SQL Server.

@path è valido solo quando @action viene creato. Per le azioni diverse dalla creazione (arresto, ricompilazione e così via), @path deve essere NULL o omesso.

Se l'istanza di SQL Server è un server virtuale in un cluster, la directory del catalogo specificata deve trovarsi in un'unità disco condivisa da cui dipende la risorsa di SQL Server. Se @path non viene specificato, il percorso della directory di catalogo predefinita si trova nell'unità disco condiviso, nella directory specificata al momento dell'installazione del server virtuale.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Set di risultati

Nessuno.

Osservazioni:

L'azione start_full viene usata per creare uno snapshot completo dei dati full-text in @ftcat. L'azione start_incremental viene utilizzata per reindicizzare solo le righe modificate nel database. Il popolamento incrementale può essere applicato solo se la tabella contiene una colonna del timestamp di tipo . Se una tabella nel catalogo full-text non contiene una colonna del timestamp di tipo, la tabella viene sottoposta a un popolamento completo.

I dati dell'indice e del catalogo full-text vengono archiviati in file creati in una directory di catalogo full-text. La directory del catalogo full-text viene creata come sottodirectory della directory specificata in @path o nella directory del catalogo full-text predefinita del server se non viene specificata @path . Il nome della directory del catalogo full-text è compilato in modo da garantire che sia univoco nel server. Le varie directory di catalogo full-text di un server pertanto possono condividere lo stesso percorso.

Autorizzazioni

Il chiamante deve essere membro del ruolo db_owner . A seconda dell'azione richiesta, il chiamante non deve essere negato autorizzazioni ALTER o CONTROL (che db_owner ha) nel catalogo full-text di destinazione.

Esempi

R. Creazione di un catalogo full-text

In questo esempio viene creato un catalogo full-text vuoto, Cat_Desc, nel AdventureWorks2022 database.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'create';
GO

B. Ricompilare un catalogo full-text

In questo esempio viene ricompilato un catalogo full-text esistente, Cat_Desc, nel AdventureWorks2022 database .

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'rebuild';
GO

C. Avvio del popolamento di un catalogo full-text

In questo esempio viene avviato un popolamento completo del Cat_Desc catalogo.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'start_full';
GO

D. Arresto del popolamento di un catalogo full-text

In questo esempio viene arrestata la popolazione del Cat_Desc catalogo.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'stop';
GO

E. Rimuovere un catalogo full-text

In questo esempio viene rimosso il Cat_Desc catalogo.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'drop';
GO