Share via


sp_fulltext_keymappings (Transact-SQL)

Gibt Zuordnungen zwischen Dokumentbezeichnern (DocIds) und Volltextschlüsselwerten zurück. Die DocId-Spalte enthält Werte für eine bigint-Ganzzahl, die einem bestimmten Volltextschlüsselwert in einer volltextindizierten Tabelle zugeordnet ist. DocId-Werte, die eine Suchbedingung erfüllen, werden vom Volltextsuchmodul an das Datenbankmodul übergeben. Dort werden sie Volltextschlüsselwerten aus der abgefragten Basistabelle zugeordnet. Die Volltextschlüsselspalte ist ein eindeutiger Index, der in einer Spalte der Tabelle erforderlich ist. 

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_fulltext_keymappings { table_id | table_id, docid | table_id, NULL, key }

Parameter

  • table_id
    Ist die Objekt-ID der volltextindizierten Tabelle. Wenn Sie eine ungültige table_id angeben, wird ein Fehler zurückgegeben. Informationen zum Abrufen der Objekt-ID einer Tabelle finden Sie unter OBJECT_ID (Transact-SQL).

  • docid
    Ein interner Dokumentbezeichner (DocId), der dem Schlüsselwert entspricht. Ein ungültiger docid-Wert gibt keine Ergebnisse zurück. Weitere Informationen zu Dokumentbezeichnern finden Sie unter Struktur der Volltextindizes.

  • key
    Der Wert des Volltextschlüssels aus der angegebenen Tabelle. Ein ungültiger key-Wert gibt keine Ergebnisse zurück. Informationen zu Volltextschlüsselwerten finden Sie unter Vorgehensweise: Abfragen der Volltextschlüsselspalte (Transact-SQL).

Wichtiger HinweisWichtig

Informationen zur Verwendung von einem, zwei oder drei Parametern finden Sie unter "Hinweise" später in diesem Thema.

Rückgabecodewerte

Keine.

Resultsets

Spaltenname

Datentyp

Beschreibung

DocId

bigint

Eine interne Dokumentbezeichnerspalte (DocId), die dem Schlüsselwert entspricht.

Schlüssel

*

Der Wert des Volltextschlüssels aus der angegebenen Tabelle.

Wenn in der Zuordnungstabelle keine Volltextschlüssel vorhanden sind, wird ein leeres Rowset zurückgegeben.

* Der Datentyp für Key ist identisch mit dem Datentyp der Volltextschlüsselspalte in der Basistabelle.

Berechtigungen

Diese Funktion ist öffentlich und erfordert keine besonderen Berechtigungen.

Hinweise

In der folgenden Tabelle sind die Auswirkungen beschrieben, die sich ergeben, wenn ein, zwei oder drei Parameter verwendet werden.

Diese Parameterliste ...

Hat dieses Ergebnis ...

table_id

Wenn sp_fulltext_keymappings nur mit dem Parameter table_id aufgerufen wird, gibt die Liste alle Volltextschlüsselwerte aus der angegebenen Basistabelle sowie die DocId zurück, die jedem Schlüssel entspricht. Dies schließt auch Schlüssel mit ein, für die ein Löschvorgang aussteht.

Diese Funktion ist hilfreich zur Behebung zahlreicher Probleme. Insbesondere bietet sie sich zum Anzeigen des Inhalts des Volltextindex an, wenn der ausgewählte Volltextschlüssel keinen ganzzahligen Datentyp aufweist. Dies schließt die Verknüpfung der Ergebnisse von sp_fulltext_keymappings mit den Ergebnissen von sys.dm_fts_index_keywords_by_document ein. Weitere Informationen finden Sie unter sys.dm_fts_index_keywords_by_document (Transact-SQL).

Im Allgemeinen sollten Sie jedoch , falls möglich, sp_fulltext_keymappings mit Parametern ausführen, die einen bestimmten Volltextschlüssel oder DocId angeben. Dies ist erheblich effizienter als eine gesamte Schlüsselzuordnung zurückzugeben, insbesondere für eine sehr große Tabelle, für die die Leistungskosten der Rückgabe der gesamten Schlüsselzuordnung erheblich sein könnten.

table_id, docid

Werden nur table_id und docid angegeben, darf docid nicht NULL sein, und es muss eine gültige DocId in der angegebenen Tabelle angegeben werden. Diese Funktion ist hilfreich, um den benutzerdefinierten Volltextschlüssel aus der Basistabelle zu isolieren, die der DocId eines bestimmten Volltextindex entspricht.

table_id, NULL, key

Wenn drei Parameter vorhanden sind, muss der zweite Parameter NULL sein, und key darf nicht NULL sein und muss einen gültigen Volltextschlüsselwert aus der angegebenen Tabelle angeben. Diese Funktion ist hilfreich, um die DocID zu isolieren, die einem bestimmten Volltextschlüssel aus der Basistabelle entspricht.

Wenn eine der folgenden Bedingungen zutrifft, wird ein Fehler zurückgegeben:

  • Sie geben eine ungültige table_id an.

  • Die Tabelle ist nicht volltextindiziert.

  • NULL tritt für einen Parameter auf, der möglicherweise ungleich NULL ist

Beispiele

HinweisHinweis

In den Beispielen in diesem Abschnitt wird die Production.ProductReview-Tabelle aus der AdventureWorks-Beispieldatenbank verwendet. Sie können diesen Index erstellen, indem Sie das für die ProductReview-Tabelle in CREATE FULLTEXT INDEX (Transact-SQL) bereitgestellte Beispiel ausführen.

A. Abrufen aller Schlüssel- und DocId-Werte

Im folgenden Beispiel wird mit einer DECLARE-Anweisung die lokale Variable @table\_id erstellt und ihr die ID der ProductReview-Tabelle als Wert zugewiesen. Im Beispiel wird sp_fulltext_keymappings ausgeführt, das die @table\_id für den table_id-Parameter angibt.

HinweisHinweis

Bei kleinen Tabellen kann Sp_fulltext_keymappings nur mit dem table_id-Parameter verwendet werden.

USE AdventureWorks;
GO
DECLARE @table_id int = OBJECT_ID(N'Production.ProductReview');
EXEC sp_fulltext_keymappings @table_id;
GO

In diesem Beispiel werden alle DocIds und Volltextschlüssel folgendermaßen von der Tabelle zurückgegeben:

docid

key

1

1

1

2

2

2

3

3

3

4

4

4

B. Abrufen des DocId-Werts für einen bestimmten Schlüsselwert

Im folgenden Beispiel wird mit einer DECLARE-Anweisung die lokale Variable @table\_id erstellt und ihr die ID der ProductReview-Tabelle als Wert zugewiesen. In dem Beispiel wird sp_fulltext_keymappings ausgeführt, wobei @table\_id für den table_id-Parameter, NULL für den docid-Parameter, und 4 für den key-Parameter angegeben wird.

HinweisHinweis

Für kleine Tabellen kann sp_fulltext_keymappings nur mit dem table_id-Parameterverwendet werden.

USE AdventureWorks;
GO
DECLARE @table_id int = OBJECT_ID(N'Production.ProductReview');
EXEC sp_fulltext_keymappings @table_id, NULL, 4;
GO

Dieses Beispiel gibt die folgenden Ergebnisse zurück:

docid

key

4

4

4

Änderungsverlauf

Aktualisierter Inhalt

Es wurden Beispiele hinzugefügt.