Rumah >pangkalan data >tutorial mysql >Apakah Had dan Kelakuan VARCHAR dan NVARCHAR dalam SQL Server?
VARCHAR
dan NVARCHAR
Jenis Data SQL ServerSQL Server menggunakan dua jenis data rentetan utama: VARCHAR
dan NVARCHAR
. Mengetahui batasan mereka adalah penting untuk reka bentuk pangkalan data yang berkesan dan mencegah kehilangan data melalui pemangkasan.
NVARCHAR
dan VARCHAR
Had Saiz:
NVARCHAR
: Menyimpan aksara Unikod. Panjang maksimum lalai ialah 4000 aksara (NVARCHAR(4000)
). Walau bagaimanapun, penggunaan NVARCHAR(MAX)
membenarkan penyimpanan sehingga 2GB data Unicode.
VARCHAR
: Menyimpan aksara bait tunggal. Panjang maksimum lalai ialah 8000 aksara (VARCHAR(8000)
). Begitu juga, VARCHAR(MAX)
menyokong sehingga 2GB data bait tunggal.
Hasil penggabungan rentetan sangat bergantung pada jenis data input:
VARCHAR(n) VARCHAR(n)
: Keputusan dalam VARCHAR(8000)
, dihadkan pada 8000 aksara.NVARCHAR(n) NVARCHAR(n)
: Keputusan dalam NVARCHAR(4000)
, dihadkan pada 4000 aksara.VARCHAR(n) NVARCHAR(n)
: Lalai kepada NVARCHAR(4000)
disebabkan keutamaan NVARCHAR
yang lebih tinggi.Yang penting, menggunakan NVARCHAR(MAX)
atau VARCHAR(MAX)
mengelakkan pemotongan semasa penggabungan, dengan syarat panjang gabungan kekal di bawah had 2GB.
N
(cth., N'My String'
) dianggap sebagai NVARCHAR(n)
(sehingga 4000 aksara) atau NVARCHAR(MAX)
(jika melebihi 4000 aksara).N
(mis., 'My String'
) dianggap sebagai VARCHAR(n)
(sehingga 8000 aksara) atau VARCHAR(MAX)
(jika melebihi 8000 aksara).Menggunakan Fungsi CONCAT
:
Fungsi CONCAT
disyorkan untuk penggabungan rentetan besar kerana ia menganggap semua input sebagai MAX
jenis data, menghalang pemotongan.
Mengelakkan =
Operator:
Apabila menambahkan rentetan, elakkan operator =
dengan bukanMAX
pembolehubah jenis data, kerana ini boleh menyebabkan pemotongan. Sebaliknya, tetapkan hasil bercantum secara langsung kepada pembolehubah.
Untuk melihat pertanyaan SQL dinamik yang panjang tanpa pemotongan dalam SQL Server Management Studio:
@SQL
dengan pembolehubah SQL dinamik anda:<code class="language-sql">SELECT @SQL as [processing-instruction(x)] FOR XML PATH</code>
Pendekatan berasaskan XML ini membolehkan untuk melihat rentetan panjang yang hampir tidak terhad.
Atas ialah kandungan terperinci Apakah Had dan Kelakuan VARCHAR dan NVARCHAR dalam SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!