sp_fulltext_table (Transact-SQL)
Markiert eine Tabelle für die Volltextindizierung oder hebt die Markierung auf.
Wichtig |
---|
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. |
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 Aktion, die ausgeführt werden soll. 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 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 nicht über einen Timestamp verfügt, wird das vollständige Auffüllen des Volltextindexes 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 Volltextindexes für die Tabelle.
start_incremental
Startet eine inkrementelle Auffüllung des Volltextindexes 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. Bei allen anderen Aktionen muss dieser Parameter NULL sein. fulltext_catalog_name ist vom Datentyp sysname. Der Standardwert ist NULL.[ @keyname=] 'unique_index_name'
Bei einer create-Aktion ein gültiger, einspaltiger und eindeutiger Index ungleich NULL für qualified_table_name. Bei allen anderen Aktionen muss dieser Parameter NULL sein. unique_index_name ist vom Datentyp sysname. Der Standardwert ist 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 der Volltextindizierung für eine Tabelle
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 AdventureWorks;
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 der Änderungsprotokollierung
Im folgenden Beispiel wird die Änderungsprotokollierung aktiviert und die sofortige Weitergabe von auftretenden Änderungen an den Volltextindex gestartet.
USE AdventureWorks;
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 AdventureWorks;
GO
EXEC sp_fulltext_table 'Production.Document', 'drop';
GO
Siehe auch
Verweis
sp_help_fulltext_tables (Transact-SQL)
sp_help_fulltext_tables_cursor (Transact-SQL)
Gespeicherte Systemprozeduren (Transact-SQL)
Gespeicherte Prozeduren für Volltextsuche und semantische Suche (Transact-SQL)