Jak Uzyskiwanie informacji o kolumnie klucza pełnotekstowego (Transact-SQL)

Zazwyczaj trzeba przyłączać z tabela bazowa wynik funkcji CONTAINSTABLE lub FREETEXTTABLE wycenione zestawu zestaw wierszy.W takich przypadkach należy znać nazwę niepowtarzalną kolumna klucz.Można 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łnotekstowego

  • Użyj Zaznacz instrukcja do wywołania INDEXPROPERTY funkcja.W funkcja wywołania funkcja OBJECT_ID przekonwertować nazwy tabela (nazwa_tabeli) na identyfikator tabela określić nazwę indeks unikatowy dla tabela, a następnie określ IsFulltextKey indeks właściwość w następujący sposób:

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

    Ta instrukcja zwraca 1, jeżeli indeks jest używany w celu wymuszenia unikatowości kolumna klucz pełnotekstowego i 0, jeśli nie jest.

    Aby uzyskać więcej informacji zobacz przykład A, w dalszej części tego tematu.

Aby znaleźć identyfikator kolumna klucz pełnotekstowego

  • Each full-text enabled table has a column that is used to enforce unique rows for the table (the uniquekey column).TableFulltextKeyColumn właściwość uzyskane z funkcja OBJECTPROPERTYEX zawiera identyfikator kolumna unikatowe kolumna klucz.

    Aby uzyskać ten identyfikator, można użyć instrukcja SELECT do wywołania funkcja OBJECTPROPERTYEX.Użyj funkcja OBJECT_ID przekonwertować nazwy tabela (nazwa_tabeli) na 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łnotekstowego "i"C.Uzyskiwanie nazwy niepowtarzalną kolumna klucz" w dalszej części tego tematu.

Przykład

Wszystkich poniższych przykładach Document tabela AdventureWorks2008R2 bazy danych.

A.Skierowano, czy dany indeks jest używana jako kolumna klucz pełnotekstowego

Poniższy przykład, inquires czy PK_Document_DocumentID Indeks jest używany w celu wymuszenia unikatowości kolumna klucz pełnotekstowego następująco:

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

W tym przykładzie zwraca 1, jeżeli PK_Document_DocumentID indeksu jest używany w celu wymuszenia unikatowości kolumna klucz pełnotekstowego.W przeciwnym razie zwraca 0 lub wartość NULL.PUSTE oznacza korzystanie z nieprawidłowa nazwa indeksu, nazwa indeksu nie odpowiada tabeli, tabela nie istnieje, i tak dalej.

B.Uzyskiwanie identyfikatora kolumna klucz pełnotekstowego

Poniższy przykład zwraca identyfikator kolumna klucz pełnego tekstu lub wartości NULL.NULL oznacza, że używasz nieprawidłowa nazwa indeksu, nazwa indeksu nie odpowiada tabeli, tabela nie istnieje, i tak dalej.

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

C.Uzyskiwanie nazwy niepowtarzalną kolumna klucz

Poniższy przykład pokazuje jak używać identyfikatora niepowtarzalną kolumna klucz programowo uzyskania jego nazwę.

USE AdventureWorks2008R2;
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 zestaw wyników kolumna o nazwie Unique Key Column, który zawiera jeden wiersz zawierający nazwę kolumną unikatowego klucz Document tabela, DocumentID.Należy zauważyć, że jeśli ta kwerenda zawierała nieprawidłowa nazwa indeksu, nazwa indeksu nie odpowiada tabeli, tabela nie istnieje i itp., on zwróci wartość NULL.