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.
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
Konten terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk