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\FTData
ad 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