sp_fulltext_catalog (Transact-SQL)

Erstellt und löscht einen Volltextkatalog und startet und beendet die Indizierung eines Katalogs. Für eine Datenbank können mehrere Volltextkataloge erstellt werden.

Wichtiger HinweisWichtig

Diese Funktion wird in zukünftigen Versionen von Microsoft SQL Server nicht mehr bereitgestellt. Verwenden Sie diese Funktion beim Entwickeln neuer Anwendungen nicht, und planen Sie das Ändern von Anwendungen, in denen es zurzeit verwendet wird. Verwenden Sie stattdessen CREATE FULLTEXT CATALOG, ALTER FULLTEXT CATALOG und DROP FULLTEXT CATALOG.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

  • [ @ftcat=] 'fulltext_catalog_name'
    Der Name des Volltextkatalogs. Katalognamen müssen innerhalb einer Datenbank eindeutig sein. fulltext_catalog_name ist vom Datentyp sysname.

  • [ @action=] 'action'
    Die auszuführende Aktion. action ist vom Datentyp varchar(20). Die folgenden Werte sind möglich.

    HinweisHinweis

    Volltextkataloge können bei Bedarf erstellt, gelöscht und geändert werden. Vermeiden Sie es jedoch, Schemaänderungen an mehreren Katalogen gleichzeitig auszuführen. Diese Aktionen können mit der gespeicherten Prozedur sp_fulltext_table ausgeführt werden. Dies ist die empfohlene Vorgehensweise.

    Wert

    Beschreibung

    Create

    Erstellt einen leeren, neuen Volltextkatalog im Dateisystem und fügt in sysfulltextcatalogs eine zugeordnete Zeile mit den Werten für fulltext_catalog_name und root_directory (falls vorhanden) ein. fulltext_catalog_name muss innerhalb der Datenbank eindeutig sein.

    Drop

    Löscht fulltext_catalog_name, indem dieser Volltextkatalog aus dem Dateisystem entfernt und die zugeordnete Zeile in sysfulltextcatalogs gelöscht wird. Diese Aktion erzeugt einen Fehler, wenn der Katalog Indizes für eine oder mehrere Tabellen enthält. sp_fulltext_table 'table_name', 'drop' sollte ausgeführt werden, um Tabellen aus diesem Katalog zu löschen.

    Wenn der Katalog nicht vorhanden ist, wird ein Fehler gemeldet.

    start_incremental

    Startet ein inkrementelles Auffüllen für fulltext_catalog_name. Wenn der Katalog nicht vorhanden ist, wird ein Fehler gemeldet. Wenn bereits eine Auffüllaktion für den Volltextindex aktiv ist, wird eine Warnung angezeigt und keine weitere Auffüllaktion durchgeführt. Beim inkrementellen Auffüllen werden nur geänderte Zeilen für die Volltextindizierung abgerufen. Dies gilt jedoch nur dann, wenn eine timestamp-Spalte in der Tabelle vorhanden ist, für die die Volltextindizierung ausgeführt wird.

    start_full

    Startet ein vollständiges Auffüllen für fulltext_catalog_name. Alle Zeilen aller Tabellen, die diesem Volltextkatalog zugeordnet sind, werden für die Volltextindizierung abgerufen, auch wenn sie bereits indiziert wurden.

    Stop

    Beendet eine Indexauffüllung für fulltext_catalog_name. Wenn der Katalog nicht vorhanden ist, wird ein Fehler gemeldet. Wenn das Auffüllen bereits beendet wurde, wird keine Warnung angezeigt.

    Rebuild

    Erstellt fulltext_catalog_name neu. Bei der Neuerstellung eines Katalogs wird der vorhandene Katalog gelöscht und an seiner Stelle ein neuer Katalog erstellt. Alle Tabellen, in denen Referenzen für die Volltextindizierung vorhanden sind, werden dem neuen Katalog zugeordnet. Durch das erneute Erstellen werden die Volltextmetadaten in den Datenbanksystemtabellen zurückgesetzt.

    Wenn die Änderungsnachverfolgung OFF ist, wird durch das erneute Erstellen keine Neuauffüllung des Volltextkatalogs verursacht. Führen Sie in diesem Fall sp_fulltext_catalog mit der Aktion start_full oder start_incremental aus, um den Katalog erneut aufzufüllen.

  • [ @path=] 'root_directory'
    Das Stammverzeichnis (nicht der vollständige physikalische Pfad) für die create-Aktion. root_directory ist vom Datentyp nvarchar(100) und hat den Standardwert NULL, der die Verwendung des bei der Installation angegebenen Standardpfades anzeigt. Dies ist das Unterverzeichnis FTDATA im Mssql-Verzeichnis, beispielsweise C:\Programme\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\FTData. Das angegebene Stammverzeichnis muss sich auf einem Laufwerk desselben Computers befinden, es darf nicht nur aus dem Laufwerkbuchstaben bestehen und darf kein relativer Pfad sein. Netzlaufwerke, austauschbare Laufwerke, Disketten und UNC-Pfade werden nicht unterstützt. Volltextkataloge müssen auf einer lokalen Festplatte des Computers erstellt werden, auf dem eine Instanz von SQL Server ausgeführt wird.

    @path ist nur gültig, wenn action den Wert create hat. Für andere Aktionen als create (stop, rebuild usw.) muss @path gleich NULL oder nicht angegeben sein.

    Falls es sich bei der Instanz von SQL Server um einen virtuellen Server in einem Cluster handelt, muss das Katalogverzeichnis auf einem freigegebenen Datenträgerlaufwerk angegeben sein, von dem die SQL Server-Ressource abhängt. Wird @path nicht angegeben, befindet sich der Pfad des Standardkatalogverzeichnisses auf dem freigegebenen Datenträgerlaufwerk in dem Verzeichnis, das bei der Installation des virtuellen Servers angegeben wurde.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Resultsets

Keine

Hinweise

Mit der start_full-Aktion wird ein vollständiger Snapshot der Volltextdaten in fulltext_catalog_name erstellt. Mit der start_incremental-Aktion werden nur die geänderten Zeilen der Datenbank neu indiziert. Inkrementelles Auffüllen kann nur angewendet werden, wenn die Tabelle eine Spalte vom Typ timestamp besitzt. Falls eine Tabelle im Volltextkatalog keine Spalte vom Typ timestamp besitzt, wird die Tabelle vollständig aufgefüllt.

Volltextkatalog- und Indexdaten werden in Dateien gespeichert, die in einem Volltextkatalogverzeichnis erstellt werden. Das Volltextkatalogverzeichnis wird als Unterverzeichnis des mit @path angegebenen Verzeichnisses angelegt oder, wenn @path nicht angegeben ist, im Standard-Volltextkatalogverzeichnis des Servers. Der Name des Volltextkatalogverzeichnisses wird so erstellt, dass er auf dem Server eindeutig ist. Deshalb können alle Volltextkatalogverzeichnisse auf einem Server denselben Pfad verwenden.

Berechtigungen

Der Aufrufer muss ein Mitglied der db_owner-Rolle sein. Abhängig von der angeforderten Aktion sollte der Aufrufer auch über die ALTER- oder CONTROL-Berechtigung im Volltextkatalog verfügen, der als Ziel angegeben ist. (Dies trifft auf Mitglieder von db_owner zu.)

Beispiele

A. Erstellen eines Volltextkatalogs

Im folgenden Beispiel wird der leere Cat_Desc-Volltextkatalog in der AdventureWorks-Datenbank erstellt.

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

B. Erneutes Erstellen eines Volltextkatalogs

Im folgenden Beispiel wird der vorhandene Cat_Desc-Volltextkatalog in der AdventureWorks-Datenbank neu erstellt.

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

C. Starten des Auffüllens eines Volltextkatalogs

Im folgenden Beispiel wird das vollständige Auffüllen des Cat_Desc-Katalogs gestartet.

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

D. Beenden des Auffüllens eines Volltextkatalogs

Im folgenden Beispiel wird das Auffüllen des Cat_Desc-Katalogs beendet.

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

E. Entfernen eines Volltextkatalogs

Im folgenden Beispiel wird der Cat_Desc-Katalog entfernt.

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

Änderungsverlauf

Aktualisierter Inhalt

Überarbeitete Beschreibung der rebuild-Aktion.