sp_fulltext_catalog (Transact-SQL)

Crea ed elimina un catalogo full-text e avvia e arresta l'azione di indicizzazione per un catalogo. È possibile creare più cataloghi full-text per ogni database.

Nota importanteImportante

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

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

sp_fulltext_catalog [ @ftcat= ] 'fulltext_catalog_name' , 
     [ @action= ] 'action' 
     [ , [ @path= ] 'root_directory' ] 

Argomenti

  • [ @ftcat=] 'fulltext_catalog_name'
    Nome del catalogo full-text. I nomi dei cataloghi devono essere univoci per ogni database. fulltext_catalog_name è di tipo sysname.

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

    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. È possibile e consigliabile eseguire queste operazioni tramite la stored procedure sp_fulltext_table.

    Valore

    Descrizione

    Create

    Crea un nuovo catalogo full-text vuoto nel file system e aggiunge una riga corrispondente in sysfulltextcatalogs con i valori fulltext_catalog_name e root_directory, se disponibili. fulltext_catalog_name deve essere un nome univoco all'interno del database.

    Drop

    Elimina il valore fulltext_catalog_name rimuovendolo dal file system ed eliminando la riga corrispondente in sysfulltextcatalogs. Se il catalogo contiene indici per una o più tabelle, questa azione ha esito negativo. Per eliminare le tabelle dal catalogo, eseguire sp_fulltext_table 'table_name', 'drop'.

    Se il catalogo non esiste, viene visualizzato un errore.

    start_incremental

    Avvia un processo di popolamento incrementale per il catalogo specificato in fulltext_catalog_name. 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. Durante il popolamento incrementale vengono recuperate per l'indicizzazione full-text solo le righe modificate, a condizione che la tabella su cui si esegue questa operazione includa una colonna di tipo timestamp.

    start_full

    Avvia un processo di popolamento completo per il catalogo specificato in fulltext_catalog_name. Per l'indicizzazione full-text viene recuperata ogni riga di ogni tabella associata al catalogo, anche se è già stata indicizzata.

    Stop

    Arresta il processo di popolamento di un indice per il catalogo specificato in fulltext_catalog_name. Se il catalogo non esiste, viene visualizzato un errore. Se il popolamento è già stato arrestato, non viene visualizzato alcun avviso.

    Rebuild

    Ricompila il catalogo specificato in fulltext_catalog_name. 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 è impostato su OFF, la ricompilazione non comporta il ripopolamento del catalogo full-text appena creato. In tal caso, per ripetere il popolamento eseguire sp_fulltext_catalog con l'azione start_full o start_incremental.

  • [ @path=] 'root_directory'
    Directory radice (non percorso fisico completo) per un'azione create. root_directory è di tipo nvarchar(100) e il valore predefinito è NULL, ovvero viene utilizzato il percorso predefinito specificato durante l'installazione. Si tratta della sottodirectory Ftdata della directory Mssql, ad esempio C:\Programmi\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\FTData. La directory radice specificata deve trovarsi in un'unità dello stesso computer, non deve corrispondere alla sola lettera dell'unità e non può essere un percorso relativo. Le unità di rete, le unità rimovibili, i dischi floppy e i percorsi in formato UNC non sono supportati. È necessario creare i cataloghi full-text in un'unità disco rigido locale associata a un'istanza di SQL Server.

    @path è valido solo quando action corrisponde a create. Per le azioni diverse da create, quali stop, rebuild e così via, @path deve essere NULL oppure omesso.

    Se l'istanza di SQL Server è un server virtuale in un cluster, la directory di catalogo specificata deve trovarsi in un'unità disco condivisa dalla quale dipende la risorsa di SQL Server. Se si omette @path, la posizione della directory predefinita del catalogo corrisponde all'unità disco condivisa nella directory specificata durante l'installazione del server virtuale.

Valori restituiti

0 (esito positivo) o 1 (esito negativo)

Set di risultati

Nessuno

Osservazioni

L'azione start_full viene utilizzata per creare uno snapshot completo dei dati full-text nel catalogo fulltext_catalog_name. L'azione start_incremental viene utilizzata per ripetere l'indicizzazione solo delle righe modificate del database. Il popolamento completo può essere applicato solo se la tabella contiene una colonna di tipo timestamp. Se una tabella nel catalogo full-text non include una colonna di tipo timestamp, viene eseguito un popolamento completo sulla tabella.

I dati dell'indice e del catalogo full-text vengono archiviati in file creati in una directory di catalogo full-text. Tale directory viene creata come sottodirectory della directory specificata in @path oppure nella directory di catalogo full-text predefinita del server, se @path non viene specificato. Il nome della directory di catalogo full-text viene compilato in modo 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. In base all'azione richiesta, al chiamante deve essere concessa l'autorizzazione ALTER o CONTROL (disponibile per il ruolo db_owner) per il catalogo full-text di destinazione.

Esempi

A. Creazione di un catalogo full-text

Nell'esempio seguente viene creato un catalogo full-text vuoto Cat_Desc nel database AdventureWorks2008R2.

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

B. Ricompilazione di un catalogo full-text

Nell'esempio seguente viene ricompilato un catalogo full-text esistente Cat_Desc nel database AdventureWorks2008R2.

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

C. Avvio del popolamento di un catalogo full-text

Nell'esempio seguente viene avviato un popolamento completo del catalogo Cat_Desc.

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

D. Arresto del popolamento di un catalogo full-text

Nell'esempio seguente viene arrestato il popolamento del catalogo Cat_Desc.

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

E. Rimozione di un catalogo full-text

Nell'esempio seguente viene rimosso il catalogo Cat_Desc.

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