Udostępnij za pośrednictwem


Jak Uzyskiwanie informacji o kolumnie klucz Full-Text (języka Transact-SQL)

Zazwyczaj wynikiem funkcji CONTAINSTABLE lub FREETEXTTABLE wycenione zestawu zestaw wierszy trzeba przyłączać z tabela bazowa.W takim przypadku należy znać nazwę kolumna klucz unikatowego.Użytkownik może zapytanie, czy dany indeks unikatowy jest używany jako klucz pełnego tekstu i można uzyskać identyfikatora kolumna klucza pełnotekstowego.

Do sprawdzania, czy dany indeks unikatowy jest używana jako kolumna klucz pełnego tekstu

  • Użycie WYBIERZ OPCJĘ Instrukcja wywołanieINDEXPROPERTY funkcja.W wywołaniu funkcja należy użyć funkcja OBJECT_ID konwertować nazwy (tabelanazwa_tabeli) na identyfikator tabela należy określić nazwę unikatowego indeksu dla tabela i określić IsFulltextKey Indeksuj właściwość w następujący sposób:

    SELECT INDEXPROPERTY( OBJECT_ID('table_name'), 'index_name',  'IsFulltextKey' );
    

    Ta instrukcja zwraca wartość 1, jeżeli indeks jest używany, aby wymusić unikatowość kolumna klucz pełnego tekstu i 0, jeśli nie jest.

    Aby uzyskać więcej informacji można znaleźć w sekcji przykład A, w dalszej części tego tematu.

Aby znaleźć identyfikator kolumna klucz pełnego tekstu

  • Each full-text enabled table has a column that is used to enforce unique rows for the table (the uniquekey column).The TableFulltextKeyColumn właściwość, obtained from the OBJECTPROPERTYEX funkcja, contains the kolumna ID of the unique klucz kolumna.

    Aby uzyskać ten identyfikator, można użyć instrukcja SELECT do wywołania funkcja OBJECTPROPERTYEX.Użyj funkcja OBJECT_ID konwertować nazwy (tabelanazwa_tabeli) w polu Identyfikator tabela i określić TableFulltextKeyColumn Właściwość w następujący sposób:

    SELECT OBJECTPROPERTYEX(OBJECT_ID( 'table_name'), 'TableFulltextKeyColumn' ) AS 'Column Identifier';
    

    Aby uzyskać więcej informacji zobacz przykłady B. „Uzyskiwanie identyfikatora kolumna klucz pełnego tekstu "i „ C.Uzyskiwanie nazw unikatowych kolumna klucz"w dalszej części tego tematu.

Example

W poniższych przykładach wszystkich za pomocą tabela dokumentu z AdventureWorks Baza danych. Aby uzyskać informacje dotyczące tej tabela zobacz Tabela dokument (AdventureWorks).

A.Inquiring czy danym indeksie jest używana jako kolumna klucz pełnego tekstu

W poniższym przykładzie inquires czy PK_Document_DocumentID Indeks jest używany w celu wymuszenia unikatowości kolumna klucz pełnego tekstu, w następujący sposób:

USE AdventureWorks
GO
SELECT INDEXPROPERTY ( OBJECT_ID('Production.Document'), 'PK_Document_DocumentID',  'IsFulltextKey' )

W tym przykładzie zwraca 1, jeżeli PK_Document_DocumentID Indeks jest używany w celu wymuszenia unikatowości kolumna klucz pełnego tekstu. W przeciwnym razie zwraca 0 lub wartość NULL.Oznacza wartość NULL, o nazwie nieprawidłowy indeks jest używany, Nazwa indeksu nie odpowiada tabeli, tabela nie istnieje lub tak dalej.

B.Uzyskiwanie identyfikatora kolumna klucz pełnego tekstu

W poniższym przykładzie zwraca identyfikator kolumna klucz pełnego tekstu lub wartości NULL.Wartość NULL oznacza, że w przypadku korzystania z nazwą nieprawidłowy indeks, Nazwa indeksu nie odpowiada tabeli, tabela nie istnieje lub tak dalej.

USE AdventureWorks;
GO
SELECT OBJECTPROPERTYEX(OBJECT_ID('Production.Document'), 'TableFulltextKeyColumn');
GO

C.Uzyskiwanie nazwy unikatowego klucz kolumna

W poniższym przykładzie pokazano, jak uzyskać programowo jego nazwę za pomocą identyfikatora unikatowego kolumna klucz.

USE AdventureWorks;
GO
DECLARE @key_column sysname
SET @key_column = Col_Name(Object_Id('Production.Document'),
ObjectProperty(Object_id('Production.Document'),
'TableFulltextKeyColumn') 
)
SELECT @key_column AS 'Unique Key Column';
GO

W tym przykładzie zwraca kolumna o nazwie zestaw wyników Unique Key Column, który zawiera jeden wiersz zawierający nazwę unikatowego klucz kolumna z tabela dokumentu DocumentID. Należy zauważyć, że jeśli ta kwerenda zawierała o nazwie nieprawidłowy indeks, Nazwa indeksu nie odpowiada tabela, nie tabela i tak forth go zwróci wartość NULL.