ALTER FULLTEXT INDEX (Transact-SQL)

Aktualisiert: 12. Dezember 2006

Ändert die Eigenschaften eines Volltextindexes.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

ALTER FULLTEXT INDEX ON table_name
   { ENABLE 
   | DISABLE
   | SET CHANGE_TRACKING { MANUAL | AUTO | OFF }
   | ADD ( column_name 
     [ TYPE COLUMN type_column_name ] 
     [ LANGUAGE language_term ] [,...n] )
     [ WITH NO POPULATION ]
   | DROP ( column_name [,...n] )
     [WITH NO POPULATION ] 
   | START { FULL | INCREMENTAL | UPDATE } POPULATION
   | { STOP | PAUSE | RESUME } POPULATION 
   }

Argumente

  • table_name
    Der Name der Tabelle mit den Spalten, die im Volltextindex enthalten sind. Die Angabe des Datenbank- und Tabellenbesitzernamens ist optional.
  • ENABLE | DISABLE
    Teilt Microsoft SQL Server mit, ob Volltextindexdaten für table_name gesammelt werden sollen. Mit ENABLE wird der Volltextindex aktiviert, mit DISABLE wird er deaktiviert.

    Wenn der Volltextindex deaktiviert ist, bleiben die Metadaten des Volltextindexes in den Systemtabellen gespeichert. Falls sich CHANGE_TRACKING im aktivierten Status befindet (automatische oder manuelle Aktualisierung) und der Volltextindex deaktiviert ist, wird der Status der Indizes fixiert. Ein zurzeit ausgeführter Crawlvorgang wird angehalten, und neue Änderungen an den Tabellendaten werden nicht nachverfolgt und an den Index weitergeleitet. Der Volltextindex für table_name kann mit ENABLE erneut aktiviert werden.

  • SET CHANGE_TRACKING {MANUAL | AUTO | OFF}
    Gibt an, ob SQL Server eine Liste aller Änderungen an den indizierten Daten im Volltextkatalog speichert. Datenänderungen durch WRITETEXT und UPDATETEXT werden im Volltextindex nicht wiedergegeben und bei der Änderungsnachverfolgung nicht ausgewählt.

    Zum Ändern des CHANGE_TRACKING-Status eines Volltextindexes darf das FILEGROUP-Objekt, in dem sich die volltextindizierte Tabelle befindet, nicht auf OFFLINE oder READONLY festgelegt sein. Andernfalls schlägt der Befehl fehl, und SQL Server gibt einen Fehler zurück.

  • MANUAL
    Gibt an, dass das Protokoll der Änderungsnachverfolgung entweder nach einem Zeitplan mithilfe des SQL Server-Agents oder manuell durch den Benutzer weitergeleitet wird.
  • AUTO
    Gibt an, dass SQL Server automatisch den Volltextindex aktualisieren wird, wenn Daten in den zugeordneten Tabellen geändert werden. AUTO ist die Standardeinstellung.
  • OFF
    Gibt an, dass SQL Server eine Liste der Änderungen an den indizierten Daten speichert.
  • ADD | DROP column_name
    Gibt die Spalten an, die einem Volltextindex hinzugefügt bzw. daraus gelöscht werden sollen. Die Spalten müssen vom Datentyp char, varchar, nchar, nvarchar, text, ntext, image, xml oder varbinary(max) sein.

    Die DROP-Klausel sollte nur in Spalten verwendet werden, die zuvor für die Volltextindizierung aktiviert wurden.

    Verwenden Sie TYPE COLUMN und LANGUAGE mit der ADD-Klausel, um diese Eigenschaften in column_name festzulegen. Wenn eine Spalte hinzugefügt wird, muss der Volltextindex in der Tabelle erneut aufgefüllt werden, damit die Volltextabfragen in dieser Spalte funktionieren können.

    SQL Server startet automatisch ein vollständiges Auffüllen, nachdem eine Spalte hinzugefügt oder aus einem Volltextindex entfernt wurde, es sei denn, WITH NO POPULATION ist angegeben.

  • TYPE COLUMN type_column_name
    Der Name der Spalte in table_name, die den Dokumenttyp von column_name enthält. Geben Sie type_column_name nur an, wenn die Spalten von column_name vom Typ varbinary(max) oder image sind.

    TYPE COLUMN kann vom Datentyp char, nchar, varchar oder nvarchar sein. Weitere Informationen zu volltextunterstützten Dateiformaten und zur Indizierung von in varbinary(max)-Spalten gespeicherten Daten finden Sie unter Filter für die Volltextsuche.

  • LANGUAGE language_term
    Die Sprache der in column_name gespeicherten Daten.

    language_term ist optional und kann als Zeichenfolge, Ganzzahl oder Hexadezimalwert entsprechend dem Gebietsschemabezeichner (LCID) einer Sprache angegeben werden. Wird language_term angegeben, wird die entsprechende Sprache auf alle Elemente der Suchbedingung angewendet. Wird kein Wert angegeben, wird die standardmäßige Volltextsprache der SQL Server-Instanz verwendet.

    Mithilfe der gespeicherten Prozedur sp_configure können Sie auf Informationen zur standardmäßigen Volltextsprache der SQL Server-Instanz zugreifen. Weitere Informationen finden Sie unter default full-text language (Option).

    In Form einer Zeichenfolge entspricht language_term dem Wert der alias-Spalte in der syslanguages-Systemtabelle. Die Zeichenfolge muss in einfache Anführungszeichen gesetzt werden, wie z. B. 'language_term'. In Form einer ganzen Zahl ist language_term der eigentliche Gebietsschemabezeichner, der die Sprache identifiziert. In Form eines Hexadezimalwertes ist language_term gleich 0x, gefolgt vom Hexadezimalwert des Gebietsschemabezeichners. Der Hexadezimalwert darf acht Ziffern nicht überschreiten, einschließlich führender Nullen.

    Wird der Wert im Format Doppelbyte-Zeichensatz (Double-Byte Character Set, DBCS) angegeben, wird er von SQL Server in Unicode konvertiert.

    Ressourcen wie Wörtertrennung und Wortstammerkennung müssen für die Sprache aktiviert sein, die für language_term angegeben ist. Falls die angegebene Sprache von den Ressourcen nicht unterstützt wird, gibt SQL Server einen Fehler zurück.

    Verwenden Sie die neutrale (0x0) Sprachenressource für Nicht-BLOB- und Nicht-XML-Spalten mit Textdaten in mehreren Sprachen oder für Fälle, in denen die Sprache des in der Spalte gespeicherten Textes unbekannt ist. Für Dokumente, die in XML- oder BLOB-Spalten gespeichert werden, wird die Sprachcodierung im Dokument bei der Indizierung verwendet. In XML-Spalten wird die Sprache z. B. mit dem xml:lang-Attribut in XML-Dokumenten identifiziert. Zur Abfragezeit wird der Wert, der vorher in language_term angegeben wurde, die Standardsprache, die für Volltextabfragen verwendet wird, es sei denn language_term wird als Teil einer Volltextabfrage angegeben.

  • [ ,...n]
    Gibt an, dass mehrere Spalten für die ADD- oder DROP-Klauseln angegeben werden können. Bei Angabe mehrerer Spalten müssen die Spalten mit Kommas getrennt werden.
  • WITH NO POPULATION
    Gibt an, dass der Volltextindex nach dem ADD- oder DROP-Spaltenvorgang nicht aufgefüllt wird. Der Index wird nur aufgefüllt, wenn der Benutzer einen START...POPULATION-Befehl ausführt.

    Falls CHANGE_TRACKING aktiviert und WITH NO POPULATION angegeben ist, gibt SQL Server einen Fehler zurück. Ist CHANGE_TRACKING aktiviert und WITH NO POPULATION nicht angegeben, führt SQL Server nach der Erstellung ein vollständiges Auffüllen des Indexes aus.

    Die NO POPULATION-Option kann nur verwendet werden, wenn CHANGE_TRACKING auf OFF festgelegt ist. Ist NO POPULATION angegeben, führt SQL Server nach der Erstellung kein Auffüllen eines Indexes aus. Der Index wird erst aufgefüllt, wenn der Benutzer einen ALTER FULLTEXT INDEX...START POPULATION-Befehl ausgibt. Ist NO POPULATION nicht angegeben, füllt SQL Server den Index nach der Erstellung auf.

  • START {FULL|INCREMENTAL|UPDATE} POPULATION
    Teilt SQL Server mit, dass die Auffüllung des Volltextindexes für table_name beginnen kann. Falls bereits eine Auffüllung des Volltextindexes ausgeführt wird, gibt SQL Server eine Warnung zurück und startet keine neue Auffüllung.
    • FULL
      Gibt an, dass jede Zeile der Tabelle für die Volltextindizierung abgerufen werden soll, auch wenn die Zeilen bereits indiziert wurden.
    • INCREMENTAL
      Gibt an, dass nur die Zeilen für die Volltextindizierung abgerufen werden sollen, die seit dem letzten Auffüllen geändert wurden. INCREMENTAL kann nur angewendet werden, wenn die Tabelle eine Spalte vom Typ timestamp besitzt. Wenn eine Tabelle im Volltextkatalog keine Spalte vom Typ timestamp besitzt, wird die Tabelle vollständig aufgefüllt.
    • UPDATE
      Gibt die Verarbeitung aller Einfügungen, Aktualisierungen oder Löschungen seit der letzten Aktualisierung des Indexes für die Änderungsnachverfolgung an. Das Auffüllen der Änderungsnachverfolgung muss in einer Tabelle aktiviert sein, nicht aktiviert sein sollten jedoch die Aktualisierung des Indexes im Hintergrund und die automatische Änderungsnachverfolgung.
  • {STOP | PAUSE | RESUME } POPULATION
    Beendet eine zurzeit ausgeführte Auffüllung oder hält diese an; oder beendet eine angehaltene Auffüllung bzw. setzt diese fort.

    Mit STOP POPULATION wird weder die automatische Änderungsnachverfolgung noch die Aktualisierung des Indexes im Hintergrund beendet. Verwenden Sie SET CHANGE_TRACKING OFF, um die Änderungsnachverfolgung zu beenden.

    PAUSE POPULATION und RESUME POPULATION können nur für vollständige Auffüllungen verwendet werden. Für andere Auffüllungstypen sind sie nicht relevant, da die anderen Auffüllungen Crawlvorgänge dort fortsetzen, wo sie beendet wurden.

Hinweise

Wenn Instanzen von Daten mit dem Datentyp xml für die Volltextsuche indiziert werden, werden die Attribute und Elementnamen nicht indiziert und können nicht abgefragt werden. Elementwerte können jedoch indiziert und in jeder Instanz abgefragt werden. Wohlgeformte XML-Dokumente und Fragmente mit mehreren Sprachen werden unterstützt.

Berechtigungen

Der Benutzer muss über die ALTER-Berechtigung für die Tabelle oder Sicht verfügen oder ein Mitglied der festen Serverrolle sysadmin oder der festen Datenbankrollen db_ddladmin oder db_owner sein.

Beispiele

Im folgenden Beispiel wird der Volltextindex in der JobCandidate-Tabelle der AdventureWorks-Datenbank geändert.

USE AdventureWorks;
GO
ALTER FULLTEXT INDEX ON HumanResources.JobCandidate ENABLE;
GO

Siehe auch

Verweis

CREATE FULLTEXT INDEX (Transact-SQL)
DROP FULLTEXT INDEX (Transact-SQL)

Andere Ressourcen

Volltextsuche

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

12. Dezember 2006

Neuer Inhalt:
  • Die Optionen PAUSE | RESUME POPULATION wurden der Syntax hinzugefügt.