sp_fulltext_table (Transact-SQL)

Markiert eine Tabelle für die Volltextindizierung oder hebt die Markierung auf.

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 INDEX, ALTER FULLTEXT INDEX und DROP FULLTEXT INDEX.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_fulltext_table 
   [ @tabname= ] 'qualified_table_name'         
      , [ @action= ] 'action' 
   [ 
      , [ @ftcat= ] 'fulltext_catalog_name'         
      , [ @keyname= ] 'unique_index_name' 
   ]

Argumente

  • [ @tabname=] 'qualified_table_name'
    Ein ein- oder zweiteiliger Tabellenname. Die Tabelle muss in der aktuellen Datenbank vorhanden sein. qualified_table_name ist vom Datentyp nvarchar(517) und hat keinen Standardwert.

  • [ @action=] 'action'
    Die auszuführende Aktion. action ist vom Datentyp nvarchar(50) und hat keinen Standardwert. Die folgenden Werte sind möglich.

    Wert

    Beschreibung

    Create

    Erstellt die Metadaten für einen Volltextindex für die Tabelle, auf die durch qualified_table_name verwiesen wird. Darüber hinaus wird angegeben, dass der Volltextindex für diese Tabelle in fulltext_catalog_name gespeichert werden soll. Diese Aktion legt außerdem die Verwendung von unique_index_name als Volltextschlüsselspalte fest. Dieser eindeutige Index muss bereits vorhanden sein und muss für eine Spalte der Tabelle definiert sein.

    Eine Volltextsuche für diese Tabelle kann erst durchgeführt werden, wenn der Volltextkatalog aufgefüllt ist.

    Drop

    Löscht die Metadaten für den Volltextindex für qualified_table_name. Ist der Volltextindex aktiviert, wird er vor dem Löschen automatisch deaktiviert. Es ist nicht erforderlich, Spalten zu entfernen, bevor der Volltextindex gelöscht wird.

    Activate

    Aktiviert die Möglichkeit, Volltextindexdaten für qualified_table_name nach der Deaktivierung zu sammeln. Es muss mindestens eine Spalte im Volltextindex vorhanden sein, damit er aktiviert werden kann.

    Ein Volltextindex wird automatisch (für das Auffüllen) aktiviert, sobald die erste Spalte für die Indizierung hinzugefügt wird. Wenn die letzte Spalte aus dem Index gelöscht wird, wird der Index inaktiv. Wenn die Änderungsprotokollierung aktiviert ist, wird durch Aktivieren eines inaktiven Index ein neuer Auffüllvorgang gestartet.

    Beachten Sie, dass dadurch nicht der eigentliche Volltextindex aufgefüllt wird, sondern nur die Tabelle im Volltextkatalog des Dateisystems registriert wird, um Zeilen von qualified_table_name während der nächsten Volltextindexauffüllung abrufen zu können.

    Deactivate

    Deaktiviert den Volltextindex für qualified_table_name, sodass die Volltextindexdaten für qualified_table_name nicht mehr gesammelt werden können. Die Volltextindexmetadaten sind weiterhin vorhanden, und die Tabelle kann erneut aktiviert werden.

    Wenn die Änderungsnachverfolgung aktiviert ist, wird der Status des Index durch die Deaktivierung eines aktiven Index eingefroren: derzeit ausgeführte Auffüllungsprozesse werden beendet, und dem Index werden keine Änderungen mehr hinzugefügt.

    start_change_tracking

    Startet das inkrementelle Auffüllen des Volltextindex. Wenn die Tabelle nicht über einen Timestamp verfügt, wird das vollständige Auffüllen des Volltextindex gestartet. Startet die Änderungsprotokollierung für die Tabelle.

    Von der Volltextänderungsnachverfolgung werden keine WRITETEXT- oder UPDATETEXT-Operationen in diesen Spalten protokolliert, die den Typ image, text oder ntext aufweisen.

    stop_change_tracking

    Beendet die Änderungsprotokollierung für die Tabelle.

    update_index

    Gibt den aktuellen Satz der protokollierten Änderungen an den Volltextindex weiter.

    Start_background_updateindex

    Startet den Vorgang, der protokollierte Änderungen an den Volltextindex weitergibt, sobald sie auftreten.

    Stop_background_updateindex

    Beendet den Vorgang, der protokollierte Änderungen an den Volltextindex weitergibt, sobald sie auftreten.

    start_full

    Startet eine vollständige Auffüllung des Volltextindex für die Tabelle.

    start_incremental

    Startet eine inkrementelle Auffüllung des Volltextindex für die Tabelle.

    Stop

    Beendet das vollständige oder inkrementelle Auffüllen.

  • [ @ftcat=] 'fulltext_catalog_name'
    Bei einer create-Aktion ein gültiger, vorhandener Volltextkatalogname. Für alle anderen Aktionen muss dieser Parameter gleich NULL sein. fulltext_catalog_name ist vom Datentyp sysname und hat den Standardwert NULL.

  • [ @keyname=] 'unique_index_name'
    Bei einer create-Aktion ein gültiger, einspaltiger und eindeutiger Index ungleich NULL für qualified_table_name. Für alle anderen Aktionen muss dieser Parameter gleich NULL sein. unique_index_name ist vom Datentyp sysname und hat den Standardwert NULL.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Resultsets

Keine

Hinweise

Nachdem ein Volltextindex für eine bestimmte Tabelle deaktiviert wurde, bleibt der vorhandene Volltextindex bis zum nächsten vollständigen Auffüllen vorhanden. Dieser Index wird jedoch nicht verwendet, da Microsoft SQL Server Abfragen für deaktivierte Tabellen blockiert.

Wenn die Tabelle erneut aktiviert, der Index jedoch nicht erneut aufgefüllt wird, ist der alte Index weiterhin für Abfragen für verbleibende, aber nicht für neue, volltextfähige Spalten verfügbar. Für Daten aus gelöschten Spalten werden Übereinstimmungen in Abfragen gefunden, für die eine umfassende Volltextspaltensuche angegeben ist.

Nach der Definition einer Tabelle für die Volltextindizierung kann das Ändern des Datentyps der Volltextspalte für den eindeutigen Schlüssel, durch Ändern des Datentyps dieser Spalte oder durch Ändern der Volltextspalte für den eindeutigen Schlüssel, ohne ein vollständiges erneutes Auffüllen bei einer nachfolgenden Abfrage zu einem Fehler führen, wobei die folgende Fehlermeldung zurückgegeben wird: "Fehler beim Konvertieren des Volltextsuchschlüssel-Werts key_value in den Datentyp data_type." Um dies zu verhindern, löschen Sie die Volltextdefinition für diese Tabelle mithilfe der drop-Aktion von sp_fulltext_table, und definieren Sie sie neu mithilfe von sp_fulltext_table und sp_fulltext_column.

Die Volltextschlüsselspalte muss mit einer Größe von maximal 900 Byte definiert sein. Aus Gründen der Leistung sollte die Schlüsselspalte so klein wie möglich sein.

Berechtigungen

Nur Mitglieder der festen Serverrolle sysadmin, der festen Datenbankrollen db_owner und db_ddladmin oder ein Benutzer mit Verweisberechtigungen für den Volltextkatalog können sp_fulltext_table ausführen.

Beispiele

A. Aktivieren einer Tabelle für die Volltextindizierung

Im folgenden Beispiel werden Volltextindex-Metadaten für die Document-Tabelle der AdventureWorks2008R2-Datenbank erstellt. Cat_Desc ist ein Volltextkatalog. PK_Document_DocumentID ist ein eindeutiger, einspaltiger Index in Document.

USE AdventureWorks2008R2;
GO
EXEC sp_fulltext_table 'Production.Document', 'create', 'Cat_Desc', 'PK_Document_DocumentID';
--Add some columns
EXEC sp_fulltext_column 'Production.Document','DocumentSummary','add';
-- Activate the full-text index
EXEC sp_fulltext_table 'Production.Document','activate';
GO

B. Aktivieren und Weitergeben von protokollierten Änderungen

Im folgenden Beispiel wird die Änderungsprotokollierung aktiviert und die sofortige Weitergabe von auftretenden Änderungen an den Volltextindex gestartet.

USE AdventureWorks2008R2;
GO
EXEC sp_fulltext_table 'Production.Document', 'Start_change_tracking';
EXEC sp_fulltext_table 'Production.Document', 'Start_background_updateindex';
GO

C. Entfernen eines Volltextindex

Im folgenden Beispiel werden Volltextindex-Metadaten für die Document-Tabelle der AdventureWorks2008R2-Datenbank entfernt.

USE AdventureWorks2008R2;
GO
EXEC sp_fulltext_table 'Production.Document', 'drop';
GO