sp_fulltext_table (Transact-SQL)
Gilt für: SQL Server Azure 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, bleibt der vorhandene Volltextindex bis zur nächsten vollständigen Grundgesamtheit vorhanden; Dieser Index wird jedoch nicht verwendet, da SQL Server Abfragen für deaktivierte Tabellen blockiert.
Wenn die Tabelle reaktiviert wird und der Index nicht neu aufgefüllt wird, steht der alte Index weiterhin für Abfragen für alle verbleibenden, aber nicht neuen Volltext-aktivierten Spalten zur Verfügung. 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 eindeutigen Volltextschlü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 Neuauffüllung auftritt, während einer nachfolgenden Abfrage ein Fehler auftritt 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_table
sp_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