Aracılığıyla paylaş


Nasıl Yapılır: Tam metin anahtarını sütun (Transact-SQL) hakkında sorgula

Genellikle, CONTAINS sonucu tablo veya FREETEXT tablo satır kümesi kümesi değerli işlevler ile temel katılması gereken tablo.Bu gibi durumlarda, benzersiz bir anahtar sütun adını bilmeniz gerekir.Belirli bir benzersiz dizin, tam metin anahtarını kullanılır ve tam metin anahtar sütun tanımlayıcısını elde edebilirsiniz olup olmadığını sorgulamak.

Verilen benzersiz dizin olup olmadığını sorgulamak için tam metin anahtar sütun olarak kullanılır

  • Kullanım bir SELECT Aranacak Ekstresiindexproperty işlev.Işlev çağrısında adı tablo (dönüştürmek OBJECT_ID işlevini kullanın.table_name) Tablo KIMLIĞI, tablo benzersiz dizin adını belirtin ve belirtinIsFulltextKey Aşağıda, özellik, dizin:

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

    Bu deyim değilse benzersizlik tam metin anahtar sütun ve 0 için kullanılan dizin 1 döndürür.

    Daha fazla bilgi için bu konuda daha sonra örnek A, "konusuna bakın.

Tam metin anahtar sütun tanımlayıcısını bulmak için

  • Each full-text enabled table has a column that is used to enforce unique rows for the table (the uniquekey column).The TableFulltextKeyColumn özellik, obtained from the OBJECTPROPERTYEX işlev, contains the sütun ID of the unique anahtar sütun.

    Bu tanıtıcı elde etmek için , bir deyim OBJECTPROPERTYEX aramak için kullanabileceğiniz işlev.Tablo (adı dönüştürmek için OBJECT_ID işlevini kullanın.table_name) Tablo KIMLIĞI içine belirtinTableFulltextKeyColumn özellik aşağıdaki gibi:

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

    Daha fazla bilgi için bkz: örnekler "bTam metin anahtar sütun tanımlayıcısını elde etme "ve"CBenzersiz bir anahtar sütun adı, bu konunun ilerisinde alma".

Example

Tüm belgeyi kullanmak aşağıdaki örneklerde tablo, AdventureWorks Veritabanı. Bu tablo hakkında daha fazla bilgi için bkz: Belge tablo (AdventureWorks).

C.Belirtilen bir dizin için tam metin anahtar sütun olarak kullanılıp kullanılmayacağını inquiring

Aşağıdaki örnek inquires olup olmadığını PK_Document_DocumentID Dizin, tam metin anahtar sütun benzersizliğini gibi zorlamak için kullanılır:

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

Bu örnek 1 verir PK_Document_DocumentID Dizin, tam metin anahtar sütun değerlerinin benzersiz olmasını sağlamak için kullanılır. Aksi halde NULL ya da 0 döndürür.NULL, kullandığınız bir geçersiz dizin adı, dizin adı karşılık gelmiyor (tabloya, tablo mevcut benzeri veya olmayan anlamına gelir.

b.Tam metin anahtar sütun tanıtıcısı alma

Aşağıdaki örnek, anahtar sütun tam metin veya null tanımlayıcısını döndürür.null bir geçersiz dizin adı kullanıyorsanız, dizin adı, tabloya karşılık gelmiyor, tablo mevcut benzeri veya olmayan olduğunu gösterir.

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

c.Benzersiz bir anahtar sütun adı'nı edinme

Aşağıdaki örnek adı programlı olarak elde etmek için benzersiz anahtar sütun tanıtıcısı nasıl kullanıldığını gösterir.

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

Bu örnek adlı sütun bir sonuç kümesi verir. Unique Key Column, hangi benzersiz anahtar sütunu tablonun belge DocumentID adını içeren tek bir satır görüntüler. Bu sorgu, bir geçersiz dizin adı içeriyordu, dizin adı için tablonun karşılık, tablo yok ve böylece forth, NULL döndürecektir dikkat edin.