Di SQL Server, SET TEXTSIZE
pernyataan menentukan ukuran varchar(max) , nvarchar(maks) , varbinary(maks) , teks , nteks , dan gambar data dikembalikan oleh SELECT
pernyataan.
Microsoft menyarankan agar teks , nteks , dan gambar akan dihapus dalam versi SQL Server yang akan datang, jadi Anda harus menghindari penggunaan tipe data ini dalam pekerjaan pengembangan baru, dan berencana untuk memodifikasi aplikasi yang saat ini menggunakannya untuk menggunakan varchar(max) , nvarchar(maks) , atau varbinary(maks) sebagai gantinya.
Contoh 1 – Penggunaan Dasar
Berikut ini contoh pengaturan TEXTSIZE
nilai.
SETEL UKURAN TEKS 2048;
Itu menetapkan TEXTSIZE
menjadi 2048 byte.
Contoh 2 – Periksa Nilai TEXTSIZE
Anda dapat memeriksa TEXTSIZE
saat ini nilai dengan @@TEXTSIZE
:
PILIH @@TEXTSIZE SEBAGAI [Ukuran Teks];
Hasil:
+-------------+| Ukuran Teks ||-------------|| 2048 |+-------------+
Contoh 3 – Bagaimana Mempengaruhi Hasil Kueri
Berikut adalah contoh yang menunjukkan bagaimana TEXTSIZE
nilai dapat memengaruhi hasil yang dikembalikan dalam SELECT
kueri.
Pertama mari kita buat tabel, masukkan beberapa teks, lalu pilih.
UJI PENGGUNAAN;BUAT TABEL TextSizeTest ( varchar50 varchar(50), varcharMax varchar(max), nvarcharMax nvarchar(max) ); INSERT INTO TextSizeTestVALUES ( 'Dragonfruit', 'Dragonfruit', 'Dragonfruit' );SELECT * FROM TextSizeTest;
Hasil (normal):
+-------------+--------------+---------------+| varchar50 | varcharMax | nvarcharMax ||-------------+--------------+---------------|| Buah naga | Buah naga | Buah naga |+-------------+--------------+---------------+Inilah yang biasanya kita harapkan. Ini mengembalikan teks lengkap di dalam setiap kolom karena setiap baris teks membutuhkan kurang dari 2048 byte (yang saya atur
TEXTSIZE
pada contoh sebelumnya).Tapi inilah yang terjadi jika saya mengurangi
TEXTSIZE
nilai:ATUR UKURAN TEKS 4;PILIH * DARI TextSizeTest;Hasil:
+-------------+--------------+---------------+| varchar50 | varcharMax | nvarcharMax ||-------------+--------------+---------------|| Buah naga | Tarik | Dr |+-------------+--------------+---------------+Kolom pertama tidak terpengaruh, karena ini bukan kolom "maks". Maksud saya adalah, ini adalah varchar(50) dan bukan varchar(maks) .
TEXTSIZE
opsi hanya memengaruhi kolom yang ditentukan denganmax
.Kolom kedua mengembalikan empat karakter pertama. Ini karena kami menyetel
TEXTSIZE
nilai ke 4, dan empat karakter pertama menggunakan 4 byte.Kolom ketiga hanya mengembalikan 2 karakter pertama. Ini karena ini adalah nvarchar kolom. Dalam hal ini, dua karakter pertama menggunakan 4 byte.
Contoh 4 – Setel Ulang Nilainya
Satu hal yang harus diperhatikan adalah menentukan
SET TEXTSIZE 0
sebenarnya "mengatur ulang" ke nilai default 4096.SET TEXTSIZE 0;SELECT @@TEXTSIZE AS [@@TEXTSIZE];SELECT * FROM TextSizeTest;Hasil:
+-------------+| @@TEXTSIZE ||--------------|| 4096 |+-------------+(1 baris terpengaruh)+-------------+------------ --+---------------+| varchar50 | varcharMax | nvarcharMax ||-------------+--------------+---------------|| Buah naga | Buah naga | Buah Naga |+-------------+--------------+---------------+(1 baris terpengaruh)