sp_fulltext_column (Transact-SQL)

Gilt für:SQL ServerAzure Synapse Analytics

Gibt an, ob eine bestimmte Spalte einer Tabelle bei der Volltextindizierung berücksichtigt werden soll.

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

Transact-SQL-Syntaxkonventionen

Syntax

sp_fulltext_column
    [ @tabname = ] N'tabname'
    , [ @colname = ] N'colname'
    , [ @action = ] 'action'
    [ , [ @language = ] language ]
    [ , [ @type_colname = ] N'type_colname' ]
[ ; ]

Argumente

[ @tabname = ] N'tabname'

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

[ @colname = ] N'colname'

Der Name einer Spalte in @tabname. Die Spalte muss entweder ein Zeichen, varbinary(max) oder ein Bild sein und kann keine berechnete Spalte sein. @colname ist "sysname" ohne Standard.

SQL Server kann Volltextindizes von Textdaten erstellen, die in Spalten gespeichert sind, die varbinary(max) oder bildtyp sind. Bilder und Bilder werden nicht indiziert.

[ @action = ] 'action'

Die auszuführende Aktion. @action ist varchar(20) ohne Standard und kann einer der folgenden Werte sein.

Wert Beschreibung
add Fügt @colname @tabname zum inaktiven Volltextindex der Tabelle hinzu. Durch diese Aktion wird die Volltextindizierung für die Spalte aktiviert.
Verwerfen Entfernt @colname von @tabname aus dem inaktiven Volltextindex der Tabelle.

[ @language = ] Sprache

Die Sprache der in der Spalte gespeicherten Daten. @language ist int mit einem Standardwert von NULL. Eine Liste der sprachen, die in SQL Server enthalten sind, finden Sie unter sys.fulltext_languages (Transact-SQL).

Hinweis

Wird verwendet Neutral , wenn eine Spalte Daten in mehreren Sprachen oder in einer nicht unterstützten Sprache enthält. Die Standardeinstellung wird durch die Standardsprache für die Serverkonfiguration angegeben.

[ @type_colname = ] N'type_colname'

Der Name einer Spalte in @tabname, die den Dokumenttyp @colname enthält. Diese Spalte muss vom Typ char, nchar, varcharoder nvarcharsein. Es wird nur verwendet, wenn der Datentyp von @colname vom Typ varbinary(max) oder Image ist. @type_colname ist "sysname" mit einem Standardwert von NULL.

Rückgabecodewerte

0 (erfolgreich) oder 1 Fehler.

Resultset

Keine.

Hinweise

Wenn der Volltextindex aktiv ist, wird ggf. das derzeit ausgeführte Auffüllen beendet. Wenn eine Tabelle mit einem aktiven Volltextindex die Änderungsnachverfolgung aktiviert hat, stellt SQL Server außerdem sicher, dass der Index aktuell ist. Beispielsweise beendet SQL Server jede aktuelle Grundpopulation in der Tabelle, legt den vorhandenen Index ab und startet eine neue Grundpopulation.

Wenn die Änderungsprotokollierung aktiviert ist und Spalten zum Volltextindex hinzugefügt oder aus ihm gelöscht werden sollen, wobei der Index beibehalten werden soll, sollte die Tabelle deaktiviert und dann die erforderlichen Spalten hinzugefügt oder gelöscht werden. Bei diesen Aktionen wird der Index eingefroren. Die Tabelle kann später wieder aktiviert werden, wenn das Auffüllen gestartet werden soll.

Berechtigungen

Der Benutzer muss ein Mitglied der festen Datenbankrolle db_ddladmin oder ein Mitglied der festen Datenbankrolle db_owner bzw. der Besitzer der Tabelle sein.

Beispiele

Im folgenden Beispiel wird die DocumentSummary -Spalte aus der Document -Tabelle dem Volltextindex der Tabelle hinzugefügt.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_column 'Production.Document', DocumentSummary, 'add';
GO

Im folgenden Beispiel wird vorausgesetzt, dass Sie einen Volltextindex für die spanishTbl-Tabelle erstellt haben. Sie können die spanishCol -Spalte dem Volltextindex hinzufügen, indem Sie die folgende gespeicherte Prozedur ausführen:

EXEC sp_fulltext_column 'spanishTbl', 'spanishCol', 'add', 0xC0A;
GO

Beim Ausführen der Abfrage:

SELECT *
FROM spanishTbl
WHERE CONTAINS (spanishCol, 'formsof(inflectional, trabajar)');

Das Resultset würde auch Zeilen mit anderen Formen von trabajar (arbeiten) einschließen, z. B. trabajo, trabajamosund trabajan.

Hinweis

Alle Spalten, die in einer einzelnen Funktionsklausel für eine Volltextabfrage aufgelistet sind, müssen dieselbe Sprache verwenden.