Share via


sp_fulltext_catalog (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed Instance

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

Wichtig

Diese Funktion wird in einer zukünftigen Version von SQL Serverentfernt. Nutzen Sie diese Funktionen bei Neuentwicklungen nicht mehr, und planen Sie die Änderung von Anwendungen, die diese Funktion zurzeit verwenden. Verwenden Sie stattdessen CREATE FULLTEXT CATALOG, ALTER FULLTEXT CATALOG und DROP FULLTEXT CATALOG .

Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

[ @ftcat = ] N'ftcat'

Name des Volltextkatalogs. Katalognamen müssen für jede Datenbank eindeutig sein. @ftcat ist "sysname" ohne Standard.

[ @action = ] 'action'

Die auszuführende Aktion. @action ist varchar(20) und kann einer dieser Werte sein.

Hinweis

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 mithilfe der sp_fulltext_table gespeicherten Prozedur ausgeführt werden, was die empfohlene Methode ist.

Wert Beschreibung
erstellen Erstellt einen leeren, neuen Volltextkatalog im Dateisystem und fügt dem @ftcat und @path, sofern vorhanden, eine zugeordnete Zeile hinzu sysfulltextcatalogs. @ftcat muss innerhalb der Datenbank eindeutig sein.
Verwerfen Legt @ftcat ab, indem sie aus dem Dateisystem entfernt und die zugeordnete Zeile gelöscht wird.sysfulltextcatalogs Diese Aktion schlägt fehl, wenn der Katalog Indizes für eine oder mehrere Tabellen enthält. sp_fulltext_table '<table_name>', 'drop' sollte ausgeführt werden, um die Tabellen aus dem Katalog abzulegen.

Wenn der Katalog nicht vorhanden ist, wird ein Fehler angezeigt.
start_incremental Startet eine inkrementelle Grundpopulation für @ftcat. Wenn der Katalog nicht vorhanden ist, wird ein Fehler angezeigt. Wenn bereits eine Auffüllaktion für den Volltextindex aktiv ist, wird eine Warnung angezeigt und keine weitere Auffüllaktion durchgeführt. Bei inkrementeller Grundgesamtheit werden nur geänderte Zeilen für die Volltextindizierung abgerufen, sofern eine Zeitstempelspalte in der Tabelle vorhanden ist, die volltextindiziert ist.
start_full Beginnt eine vollständige Bevölkerung für @ftcat. Alle Zeilen aller Tabellen, die diesem Volltextkatalog zugeordnet sind, werden für die Volltextindizierung abgerufen, auch wenn sie bereits indiziert wurden.
stop Stoppt eine Indexpopulation für @ftcat. Wenn der Katalog nicht vorhanden ist, wird ein Fehler angezeigt. Wenn das Auffüllen bereits beendet wurde, wird keine Warnung angezeigt.
rebuild Erstellt @ftcat 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 deaktiviert ist, führt die Neuerstellung nicht zu einer Neuauffüllung des neu erstellten Volltextkatalogs. Führen Sie in diesem Fall die start_full- oder start_incremental-Aktion aus, um die Aktion erneut zu sp_fulltext_catalogfüllen.

[ @path = ] N'path'

Das Stammverzeichnis (nicht der vollständige physische Pfad) für eine Erstellungsaktion . @path ist "nvarchar(100)" mit einem StandardwertNULL, der die Verwendung des standardspeicherorts angibt, der bei setup angegeben ist.

Dies ist das FTData Unterverzeichnis im MSSQL Verzeichnis, C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\FTDataz. B. . Das angegebene Stammverzeichnis muss sich auf einem Laufwerk auf demselben Computer befinden, besteht aus mehr als nur dem Laufwerkbuchstaben und kann kein relativer Pfad sein. Netzwerklaufwerke, Wechseldatenträger, Disketten und UNC-Pfade werden nicht unterstützt. Volltextkataloge müssen auf einer lokalen Festplatte erstellt werden, die einer Sql Server-Instanz zugeordnet ist.

@path ist nur gültig, wenn @action erstellt wird. Bei anderen Aktionen als "Erstellen " (Beenden, Neuerstellen usw.) muss @path NULL sein oder weggelassen werden.

Wenn es sich bei der Instanz von SQL Server um einen virtuellen Server in einem Cluster handelt, muss sich das angegebene Katalogverzeichnis auf einem freigegebenen Datenträgerlaufwerk befinden, von dem die SQL Server-Ressource abhängt. Wenn @path nicht angegeben ist, befindet sich der Speicherort des Standardkatalogverzeichnisses auf dem freigegebenen Datenträgerlaufwerk im Verzeichnis, das beim Installieren des virtuellen Servers angegeben wurde.

Rückgabecodewerte

0 (erfolgreich) oder 1 Fehler.

Resultset

Keine.

Hinweise

Die start_full Aktion wird verwendet, um eine vollständige Momentaufnahme der Volltextdaten in @ftcat zu erstellen. Die start_incremental Aktion wird verwendet, um nur die geänderten Zeilen in der Datenbank neu zu indizieren. Die inkrementelle Population kann nur angewendet werden, wenn die Tabelle über eine Spalte des Zeitstempeltyps verfügt. Wenn eine Tabelle im Volltextkatalog keine Spalte des Zeitstempeltyps enthält, wird die Tabelle einer vollständigen Population unterzogen.

Volltextkatalog- und Indexdaten werden in Dateien gespeichert, die in einem Volltextkatalogverzeichnis erstellt werden. Das Volltextkatalogverzeichnis wird als Unterverzeichnis des verzeichnisses erstellt, das in @path oder im Standardmäßigen Volltextkatalogverzeichnis des Servers angegeben ist, wenn @path nicht angegeben ist. Der Name des Volltextkatalogverzeichnisses ist so aufgebaut, dass er auf dem Server eindeutig ist. Deshalb können alle Volltextkatalogverzeichnisse auf einem Server denselben Pfad verwenden.

Berechtigungen

Der Aufrufer muss Mitglied der rolle db_owner sein. Je nach angeforderter Aktion sollte der Aufrufer nicht ALTER- oder CONTROL-Berechtigungen (die db_owner hat) für den Volltextkatalog des Ziels verweigert werden.

Beispiele

A. Erstellen eines Volltextkatalogs

In diesem Beispiel wird ein leerer Volltextkatalog Cat_Descin der AdventureWorks2022 Datenbank erstellt.

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

B. Neuerstellen eines Volltextkatalogs

In diesem Beispiel wird ein vorhandener Volltextkatalog Cat_Descin der AdventureWorks2022 Datenbank neu erstellt.

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

C. Starten des Auffüllens eines Volltextkatalogs

In diesem Beispiel wird eine vollständige Population des Cat_Desc Katalogs gestartet.

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

D: Beenden des Auffüllens eines Volltextkatalogs

In diesem Beispiel wird die Population des Cat_Desc Katalogs beendet.

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

E. Entfernen eines Volltextkatalogs

In diesem Beispiel wird der Cat_Desc Katalog entfernt.

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