Freigeben über


sp_fulltext_table (Transact-SQL)

Gilt für:SQL ServerAzure Synapse Analytics

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

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

Transact-SQL-Syntaxkonventionen

Syntax

sp_fulltext_table
    [ @tabname = ] N'tabname'
    , [ @action = ] 'action'
    [ , [ @ftcat = ] N'ftcat' ]
    [ , [ @keyname = ] N'keyname' ]
[ ; ]

Argumente

[ @tabname = ] N'tabname'

Ein einteiliger oder zweiteiliger Tabellenname. Die Tabelle muss in der aktuellen Datenbank vorhanden sein. @tabname ist nvarchar(517) ohne Standard.

[ @action = ] 'action'

Die auszuführende Aktion. @action ist "nvarchar(50)", ohne Standard und kann einer dieser Werte sein.

Wert Beschreibung
Erstellen Erstellt die Metadaten für einen Volltextindex für die Tabelle, auf die von @tabname verwiesen wird, und gibt an, dass sich die Volltextindexdaten für diese Tabelle in @ftcat befinden sollen. Mit dieser Aktion wird auch die Verwendung von @keyname als Volltextschlüsselspalte bezeichnet. Dieser eindeutige Index muss bereits vorhanden sein und muss für eine Spalte der Tabelle definiert sein.

Eine Volltextsuche kann erst nach dem Auffüllen des Volltextkatalogs für diese Tabelle ausgeführt werden.
Drop Legt die Metadaten für den Volltextindex für @tabname ab. Wenn der Volltextindex aktiv ist, wird er automatisch deaktiviert, bevor er gelöscht wird. Es ist nicht erforderlich, Spalten zu entfernen, bevor der Volltextindex abgelegt wird.
Aktivieren Aktiviert die Möglichkeit, dass Volltextindexdaten nach der Deaktivierung für @tabname gesammelt werden können. 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.

Dadurch wird der Volltextindex nicht aufgefüllt, sondern die Tabelle einfach im Volltextkatalog im Dateisystem registriert, sodass Zeilen aus @tabname während der nächsten Volltextindexgesamtheit abgerufen werden können.
Deaktivieren Deaktiviert den Volltextindex für @tabname , sodass Volltextindexdaten für die @tabname nicht mehr erfasst werden können. Die Volltextindexmetadaten sind weiterhin vorhanden, und die Tabelle kann erneut aktiviert werden.

Wenn die Änderungsnachverfolgung aktiviert ist, wird der Status des Indexes 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 keinen Zeitstempel hat, beginnen Sie eine vollständige Population des Volltextindexes. Startet die Änderungsprotokollierung für die Tabelle.

Die Nachverfolgung von Volltextänderungen verfolgt keine WRITETEXT- oder UPDATETEXT-Vorgänge, die für indizierte Volltextspalten ausgeführt werden, die vom Typ "Bild", "Text" oder "ntext" sind.
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 Volltextindexes für die Tabelle.
start_incremental Startet eine inkrementelle Auffüllung des Volltextindexes für die Tabelle.
Beenden Beendet das vollständige oder inkrementelle Auffüllen.

[ @ftcat = ] N'ftcat'

Ein gültiger, vorhandener Volltextkatalogname für eine Erstellungsaktion . Bei allen anderen Aktionen muss dieser Parameter NULL sein. @ftcat ist "sysname" mit dem Standardwert "NULL.

[ @keyname = ] N'keyname'

Ein gültiger einspaltige, eindeutiger nicht nullbarer Index für @tabname für eine Erstellungsaktion. Bei allen anderen Aktionen muss dieser Parameter NULL sein. @keyname ist "sysname" mit dem Standardwert "NULL.

Rückgabecodewerte

0 (erfolgreich) oder 1 Fehler.

Resultset

Keine.

Hinweise

Nachdem ein Volltextindex für eine bestimmte Tabelle deaktiviert wurde, wird der vorhandene Volltextindex bis zur nächsten vollständigen Grundgesamtheit neu Standard. Dieser Index wird jedoch nicht verwendet, da SQL Server Abfragen für deaktivierte Tabellen blockiert.

Wenn die Tabelle reaktiviert und der Index nicht erneut aufgefüllt wird, steht der alte Index weiterhin für Abfragen für alle erneuten spalten zur Verfügung Standard ing, aber nicht für neue, Volltext-aktivierte Spalten. Für Daten aus gelöschten Spalten werden Übereinstimmungen in Abfragen gefunden, für die eine umfassende Volltextspaltensuche angegeben ist.

Nachdem eine Tabelle für die Volltextindizierung definiert wurde, kann das Wechseln der Volltext-Schlüsselspalte von einem Datentyp in einen anderen erfolgen, entweder durch Ändern des Datentyps dieser Spalte oder durch Ändern des eindeutigen Volltextschlüssels von einer Spalte in eine andere, ohne dass eine vollständige Neupopulation zu einem Fehler bei einer nachfolgenden Abfrage führen kann und die Fehlermeldung zurückgegeben wird:

Fehler bei der Konvertierung in typ data_type für den Volltext-Suchschlüsselwert key_value.

Um diesen Fehler zu verhindern, legen Sie die Volltextdefinition für diese Tabelle mithilfe der Drop-Aktion absp_fulltext_table, und definieren Sie ihn neu.sp_fulltext_tablesp_fulltext_column

Die Volltextschlüsselspalte muss mit einer Größe von maximal 900 Byte definiert sein. Es wird empfohlen, dass die Größe der Schlüsselspalte aus Leistungsgründen so klein wie möglich ist.

Berechtigungen

Es können nur Mitglieder der festen Serverrolle sysadmin , db_owner und db_ddladmin festen Datenbankrollen oder ein Benutzer mit Verweisberechtigungen für den Volltextkatalog ausgeführt werden sp_fulltext_table.

Beispiele

A. Aktivieren einer Tabelle für die Volltextindizierung

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

USE AdventureWorks2022;
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 Verteilen von Nachverfolgen von Änderungen

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

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

C. Entfernen eines Volltextindexes

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

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