Bagikan melalui


sp_fulltext_table (T-SQL)

Berlaku untuk: SQL Server Azure Synapse Analytics

Menandai atau membatalkan tanda tabel untuk pengindeksan teks lengkap.

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 INDEX, ALTER FULLTEXT INDEX, dan DROP FULLTEXT INDEX sebagai gantinya.

Konvensi sintaks transact-SQL

Sintaks

sp_fulltext_table
    [ @tabname = ] N'tabname'
    , [ @action = ] 'action'
    [ , [ @ftcat = ] N'ftcat' ]
    [ , [ @keyname = ] N'keyname' ]
[ ; ]

Argumen

[ @tabname = ] N'tabname'

Nama tabel satu bagian atau dua bagian. Tabel harus ada di database saat ini. @tabname adalah nvarchar(517), tanpa default.

[ @action = ] 'tindakan'

Tindakan yang akan dilakukan. @action adalah nvarchar(50), tanpa default, dan dapat menjadi salah satu nilai ini.

Nilai Deskripsi
Buat Membuat metadata untuk indeks teks lengkap untuk tabel yang direferensikan oleh @tabname dan menentukan bahwa data indeks teks lengkap untuk tabel ini harus berada di @ftcat. Tindakan ini juga menunjuk penggunaan @keyname sebagai kolom kunci teks lengkap. Indeks unik ini harus sudah ada dan harus ditentukan pada satu kolom tabel.

Pencarian teks lengkap tidak dapat dilakukan terhadap tabel ini hingga katalog teks lengkap diisi.
Menjatuhkan Menghilangkan metadata pada indeks teks lengkap untuk @tabname. Jika indeks teks lengkap aktif, indeks teks lengkap akan dinonaktifkan secara otomatis sebelum dihilangkan. Tidak perlu menghapus kolom sebelum menghilangkan indeks teks lengkap.
Aktifkan Mengaktifkan kemampuan untuk data indeks teks lengkap yang akan dikumpulkan untuk @tabname, setelah dinonaktifkan. Setidaknya harus ada satu kolom yang berpartisipasi dalam indeks teks lengkap sebelum dapat diaktifkan.

Indeks teks lengkap secara otomatis dibuat aktif (untuk populasi) segera setelah kolom pertama ditambahkan untuk pengindeksan. Jika kolom terakhir dihilangkan dari indeks, indeks menjadi tidak aktif. Jika pelacakan perubahan aktif, mengaktifkan indeks yang tidak aktif memulai populasi baru.

Ini tidak benar-benar mengisi indeks teks lengkap, tetapi hanya mendaftarkan tabel dalam katalog teks lengkap dalam sistem file sehingga baris dari @tabname dapat diambil selama populasi indeks teks lengkap berikutnya.
Menonaktifkan Menonaktifkan indeks teks lengkap untuk @tabname sehingga data indeks teks lengkap tidak dapat lagi dikumpulkan untuk @tabname. Metadata indeks teks lengkap tetap ada dan tabel dapat diaktifkan kembali.

Jika pelacakan perubahan aktif, menonaktifkan indeks aktif membekukan status indeks: populasi yang sedang berlangsung dihentikan, dan tidak ada lagi perubahan yang disebarkan ke indeks.
start_change_tracking Mulai populasi inkremental indeks teks lengkap. Jika tabel tidak memiliki tanda waktu, mulai populasi penuh indeks teks lengkap. Mulai lacak perubahan pada tabel.

Pelacakan perubahan teks lengkap tidak melacak operasi WRITETEXT atau UPDATETEXT apa pun yang dilakukan pada kolom terindeks teks lengkap yang berjenis gambar, teks, atau ntext.
stop_change_tracking Berhenti melacak perubahan pada tabel.
update_index Sebarkan kumpulan perubahan terlacak saat ini ke indeks teks lengkap.
start_background_updateindex Mulai menyebarkan perubahan terlacak ke indeks teks lengkap saat terjadi.
stop_background_updateindex Berhenti menyebarkan perubahan terlacak ke indeks teks lengkap saat terjadi.
start_full Mulai populasi penuh indeks teks lengkap untuk tabel.
start_incremental Mulai populasi inkremental indeks teks lengkap untuk tabel.
Stop Hentikan populasi penuh atau inkremental.

[ @ftcat = ] N'ftcat'

Nama katalog teks lengkap yang valid dan sudah ada untuk tindakan buat. Untuk semua tindakan lainnya, parameter ini harus NULL. @ftcat adalah sysname, dengan default NULL.

[ @keyname = ] N'keyname'

Kolom kunci tunggal yang valid, indeks unik yang tidak dapat diubah ke null pada @tabname untuk tindakan buat. Untuk semua tindakan lainnya, parameter ini harus NULL. @keyname adalah sysname, dengan default NULL.

Mengembalikan nilai kode

0 (berhasil) atau 1 (kegagalan).

Tataan hasil

Tidak ada.

Keterangan

Setelah indeks teks lengkap dinonaktifkan untuk tabel tertentu, indeks teks lengkap yang ada tetap di tempat sampai populasi penuh berikutnya; namun, indeks ini tidak digunakan karena SQL Server memblokir kueri pada tabel yang dinonaktifkan.

Jika tabel diaktifkan kembali dan indeks tidak diisi ulang, indeks lama masih tersedia untuk kueri terhadap kolom yang tersisa, tetapi bukan kolom baru yang diaktifkan teks lengkap. Data dari kolom yang dihapus dicocokkan dalam kueri yang menentukan pencarian kolom semua teks lengkap.

Setelah tabel ditentukan untuk pengindeksan teks lengkap, mengalihkan kolom kunci unik teks lengkap dari satu jenis data ke jenis data lainnya, baik dengan mengubah tipe data kolom tersebut atau mengubah kunci unik teks lengkap dari satu kolom ke kolom lainnya, tanpa repopulasi penuh dapat menyebabkan kegagalan terjadi selama kueri berikutnya dan mengembalikan pesan kesalahan:

Konversi untuk mengetik data_type gagal untuk nilai kunci pencarian teks lengkap key_value.

Untuk mencegah kesalahan ini, hilangkan definisi teks lengkap untuk tabel ini menggunakan tindakan sp_fulltext_table drop dan tentukan ulang menggunakan sp_fulltext_table dan sp_fulltext_column.

Kolom kunci teks lengkap harus didefinisikan menjadi 900 byte atau kurang. Disarankan agar ukuran kolom kunci sesederhana mungkin karena alasan performa.

Izin

Hanya anggota peran server tetap sysadmin , peran database tetap db_owner dan db_ddladmin , atau pengguna dengan izin referensi pada katalog teks lengkap yang dapat menjalankan sp_fulltext_table.

Contoh

J. Mengaktifkan tabel untuk pengindeksan teks lengkap

Contoh berikut membuat metadata indeks teks lengkap untuk Document tabel AdventureWorks database. Cat_Desc adalah katalog teks lengkap. PK_Document_DocumentID adalah indeks kolom tunggal yang unik pada Document.

USE AdventureWorks2022;
GO

EXEC sp_fulltext_table 'Production.Document',
    'create',
    'Cat_Desc',
    'PK_Document_DocumentID';

--Add some columns
EXEC sp_fulltext_column 'Production.Document',
    'DocumentSummary',
    'add';

-- Activate the full-text index
EXEC sp_fulltext_table 'Production.Document',
    'activate';
GO

B. Mengaktifkan dan menyebarkan perubahan trek

Contoh berikut mengaktifkan dan mulai menyebarkan perubahan terlacak ke indeks teks lengkap saat terjadi.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_table 'Production.Document', 'Start_change_tracking';
EXEC sp_fulltext_table 'Production.Document', 'Start_background_updateindex';
GO

C. Menghapus indeks teks lengkap

Contoh ini menghapus metadata indeks teks lengkap untuk Document tabel AdventureWorks database.

USE AdventureWorks2022;
GO
EXEC sp_fulltext_table 'Production.Document', 'drop';
GO