Bagikan melalui


sp_fulltext_catalog (T-SQL)

Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance

Membuat dan menghilangkan katalog teks lengkap, dan memulai dan menghentikan tindakan pengindeksan untuk katalog. Beberapa katalog teks lengkap dapat dibuat untuk setiap database.

Penting

Fitur ini akan dihapus dalam versi SQL Server yang akan datang. Hindari menggunakan fitur ini dalam pekerjaan pengembangan baru, dan rencanakan untuk memodifikasi aplikasi yang saat ini menggunakan fitur ini. Gunakan CREATE FULLTEXT CATALOG, ALTER FULLTEXT CATALOG, dan DROP FULLTEXT CATALOG sebagai gantinya.

Konvensi sintaks transact-SQL

Sintaks

sp_fulltext_catalog
    [ @ftcat = ] N'ftcat'
    , [ @action = ] 'action'
    [ , [ @path = ] N'path' ]
[ ; ]

Argumen

[ @ftcat = ] N'ftcat'

Nama katalog teks lengkap. Nama katalog harus unik untuk setiap database. @ftcat adalah sysname, tanpa default.

[ @action = ] 'tindakan'

Tindakan yang akan dilakukan. @action adalah varchar(20), dan bisa menjadi salah satu nilai ini.

Catatan

Katalog teks lengkap dapat dibuat, dihilangkan, dan dimodifikasi sesuai kebutuhan. Namun, hindari membuat perubahan skema pada beberapa katalog secara bersamaan. Tindakan ini dapat dilakukan menggunakan prosedur tersimpan sp_fulltext_table , yang merupakan cara yang direkomendasikan.

Nilai Deskripsi
buat Membuat katalog teks lengkap baru yang kosong dalam sistem file dan menambahkan baris terkait dengan sysfulltextcatalogs nilai @ftcat dan @path, jika ada. @ftcat harus unik dalam database.
menjatuhkan Menghilangkan @ftcat dengan menghapusnya dari sistem file dan menghapus baris terkait di sysfulltextcatalogs. Tindakan ini gagal jika katalog ini berisi indeks untuk satu atau beberapa tabel. sp_fulltext_table '<table_name>', 'drop' harus dijalankan untuk menghilangkan tabel dari katalog.

Kesalahan ditampilkan jika katalog tidak ada.
start_incremental Memulai populasi inkremental untuk @ftcat. Kesalahan ditampilkan jika katalog tidak ada. Jika populasi indeks teks lengkap sudah aktif, peringatan ditampilkan tetapi tidak ada tindakan populasi yang terjadi. Dengan populasi inkremental hanya baris yang diubah yang diambil untuk pengindeksan teks lengkap, asalkan ada kolom tanda waktu yang ada dalam tabel yang diindeks teks lengkap.
start_full Memulai populasi penuh untuk @ftcat. Setiap baris setiap tabel yang terkait dengan katalog teks lengkap ini diambil untuk pengindeksan teks lengkap meskipun sudah diindeks.
stop Menghentikan populasi indeks untuk @ftcat. Kesalahan ditampilkan jika katalog tidak ada. Tidak ada peringatan yang ditampilkan jika populasi sudah dihentikan.
membangun ulang Membangun kembali @ftcat. Saat katalog dibangun kembali, katalog yang ada dihapus dan katalog baru dibuat di tempatnya. Semua tabel yang memiliki referensi pengindeksan teks lengkap dikaitkan dengan katalog baru. Membangun ulang mengatur ulang metadata teks lengkap dalam tabel sistem database.

Jika pelacakan perubahan NONAKTIF, pembangunan kembali tidak menyebabkan repopulasi katalog teks lengkap yang baru dibuat. Dalam hal ini, untuk mengisi ulang, jalankan sp_fulltext_catalog dengan tindakan start_full atau start_incremental .

[ @path = ] N'path'

Direktori akar (bukan jalur fisik lengkap) untuk tindakan buat . @path adalah nvarchar(100), dengan default NULL, yang menunjukkan penggunaan lokasi default yang ditentukan saat penyiapan.

Ini adalah FTData subdirektori MSSQL dalam direktori; misalnya, C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\FTData. Direktori akar yang ditentukan harus berada di drive pada komputer yang sama, terdiri dari lebih dari sekadar huruf kandar, dan tidak dapat menjadi jalur relatif. Drive jaringan, drive yang dapat dilepas, disket, dan jalur UNC tidak didukung. Katalog teks lengkap harus dibuat pada hard drive lokal yang terkait dengan instans SQL Server.

@path hanya valid saat @action dibuat. Untuk tindakan selain membuat (hentikan, bangun ulang, dan sebagainya), @path harus atau dihilangkanNULL.

Jika instans SQL Server adalah server virtual dalam kluster, direktori katalog yang ditentukan harus berada di drive disk bersama tempat sumber daya SQL Server bergantung. Jika @path tidak ditentukan, lokasi direktori katalog default ada di drive disk bersama, di direktori yang ditentukan saat server virtual diinstal.

Mengembalikan nilai kode

0 (berhasil) atau 1 (kegagalan).

Tataan hasil

Tidak ada.

Keterangan

Tindakan start_full digunakan untuk membuat rekam jepret lengkap data teks lengkap di @ftcat. Tindakan start_incremental digunakan untuk mengindeks ulang hanya baris yang diubah dalam database. Populasi bertahap hanya dapat diterapkan jika tabel memiliki kolom tanda waktu jenis. Jika tabel dalam katalog teks lengkap tidak berisi kolom tanda waktu jenis, tabel mengalami populasi penuh.

Katalog teks lengkap dan data indeks disimpan dalam file yang dibuat dalam direktori katalog teks lengkap. Direktori katalog teks lengkap dibuat sebagai subdirektori direktori yang ditentukan dalam @path atau di direktori katalog teks lengkap default server jika @path tidak ditentukan. Nama direktori katalog teks lengkap dibangun dengan cara yang menjaminnya unik di server. Oleh karena itu, semua direktori katalog teks lengkap di server dapat berbagi jalur yang sama.

Izin

Pemanggil diharuskan menjadi anggota peran db_owner . Bergantung pada tindakan yang diminta, pemanggil tidak boleh ditolak mengubah atau mengontrol izin (yang db_owner miliki) pada katalog teks lengkap target.

Contoh

J. Membuat katalog teks lengkap

Contoh ini membuat katalog teks lengkap kosong, Cat_Desc, dalam AdventureWorks2022 database.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'create';
GO

B. Membangun kembali katalog teks lengkap

Contoh ini membangun kembali katalog teks lengkap yang ada, Cat_Desc, dalam AdventureWorks2022 database.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'rebuild';
GO

C. Memulai populasi katalog teks lengkap

Contoh ini memulai populasi Cat_Desc lengkap katalog.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'start_full';
GO

D. Menghentikan populasi katalog teks lengkap

Contoh ini menghentikan populasi Cat_Desc katalog.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'stop';
GO

E. Menghapus katalog teks lengkap

Contoh ini menghapus Cat_Desc katalog.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_catalog 'Cat_Desc', 'drop';
GO