WRITETEXT (T-SQL)

Berlaku untuk:SQL ServerAzure SQL Managed Instance

Mengizinkan pembaruan teks, ntext, atau kolom gambar yang ada yang dicatat minimal. WRITETEXT menimpa data yang ada di kolom yang dipengaruhinya. WRITETEXT tidak dapat digunakan pada kolom teks, ntext, dan gambar dalam tampilan.

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 jenis data bernilai besar dan . Tulis klausul pernyataan UPDATE sebagai gantinya.

Konvensi sintaks transact-SQL

Sintaksis

WRITETEXT [BULK]  
  { table.column text_ptr }  
  [ WITH LOG ] { data }  

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

MASSAL
Memungkinkan alat unggah untuk mengunggah aliran data biner. Aliran harus disediakan oleh alat di tingkat protokol TDS. Saat aliran data tidak ada, prosesor kueri mengabaikan opsi MASSAL.

Penting

Kami menyarankan agar opsi MASSAL tidak digunakan dalam aplikasi berbasis SQL Server. Opsi ini mungkin diubah atau dihapus di versi SQL Server yang akan datang.

table.column
Adalah nama tabel dan teks, ntext, atau kolom gambar yang akan diperbarui. Nama tabel dan kolom harus mematuhi aturan untuk pengidentifikasi. Menentukan nama database dan nama pemilik bersifat opsional.

text_ptr
Adalah nilai yang menyimpan penunjuk ke data teks, ntext, atau gambar . text_ptr harus biner(16). Untuk membuat penunjuk teks, jalankan pernyataan INSERT atau UPDATE dengan data yang tidak null untuk kolom teks, ntext, atau gambar.

DENGAN LOG
Diabaikan oleh SQL Server. Pengelogan ditentukan oleh model pemulihan yang berlaku untuk database.

data
Adalah teks, ntext, atau data gambar aktual untuk disimpan. data dapat berupa literal atau parameter. Panjang maksimum teks yang dapat disisipkan secara interaktif dengan WRITETEXT adalah sekitar 120 KB untuk teks, ntext, dan data gambar .

Keterangan

Gunakan WRITETEXT untuk mengganti data teks, ntext, dan gambar dan UPDATETEXT untuk memodifikasi data teks, ntext, dan gambar . UPDATETEXT lebih fleksibel karena hanya mengubah bagian kolom teks, ntext, atau gambar alih-alih seluruh kolom.

Untuk performa terbaik, sebaiknya teks, ntext, dan data gambar disisipkan atau diperbarui dalam ukuran potongan yang merupakan kelipatan 8040 byte.

Jika model pemulihan database sederhana atau dicatat secara massal, operasi teks, ntext, dan gambar yang menggunakan WRITETEXT adalah operasi yang dicatat secara minimal saat data baru dimasukkan atau ditambahkan.

Catatan

Pengelogan minimal tidak digunakan ketika nilai yang ada diperbarui.

Agar WRITETEXT berfungsi dengan benar, kolom harus sudah berisi penunjuk teks yang valid.

Jika tabel tidak memiliki teks baris, SQL Server menghemat ruang dengan tidak menginisialisasi kolom teks saat nilai null eksplisit atau implisit ditambahkan dalam kolom teks dengan INSERT, dan tidak ada penunjuk teks yang dapat diperoleh untuk null tersebut. Untuk menginisialisasi kolom teks ke NULL, gunakan pernyataan UPDATE. Jika tabel memiliki teks baris, Anda tidak perlu menginisialisasi kolom teks untuk null dan Anda selalu bisa mendapatkan penunjuk teks.

Fungsi ODBC SQLPutData lebih cepat dan menggunakan memori yang kurang dinamis daripada WRITETEXT. Fungsi ini dapat menyisipkan hingga 2 gigabyte data teks, ntext, atau gambar .

Di SQL Server, dalam penunjuk teks baris ke teks, ntext, atau data gambar mungkin ada tetapi mungkin tidak valid. Untuk informasi tentang opsi teks dalam baris, lihat sp_tableoption (Transact-SQL). Untuk informasi tentang membatalkan penunjuk teks, lihat sp_invalidate_textptr (Transact-SQL).

Izin

Memerlukan izin UPDATE pada tabel yang ditentukan. Izin dapat ditransfer ketika izin UPDATE ditransfer.

Contoh

Contoh berikut menempatkan penunjuk teks ke dalam variabel @ptrvallokal , lalu WRITETEXT menempatkan string teks baru ke dalam baris yang ditunjukkan oleh @ptrval.

Catatan

Untuk menjalankan contoh ini, Anda harus menginstal database sampel pub.

USE pubs;  
GO  
ALTER DATABASE pubs SET RECOVERY SIMPLE;  
GO  
DECLARE @ptrval BINARY(16);  
SELECT @ptrval = TEXTPTR(pr_info)   
FROM pub_info pr, publishers p  
WHERE p.pub_id = pr.pub_id   
   AND p.pub_name = 'New Moon Books'  
WRITETEXT pub_info.pr_info @ptrval 'New Moon Books (NMB) has just released another top ten publication. With the latest publication this makes NMB the hottest new publisher of the year!';  
GO  
ALTER DATABASE pubs SET RECOVERY SIMPLE;  
GO  

Lihat Juga

Tipe Data (Transact-SQL)
DECLARE @local_variable (Transact-SQL)
DELETE (Transact-SQL)
SELECT (Transact-SQL)
Pernyataan SET (Transact-SQL)
UPDATETEXT (Transact-SQL)